PHP + VIM - बंगलौ (Bangalore) لديه استراحة قبل الحرف الأخير र

StackOverflow https://stackoverflow.com/questions/3598212

سؤال

إستعملت http://translate.google.com/#enouthi|bangalore للحصول على الهندية لبنغالور و बंगलौ.

ولكن عندما لصقها في Vim ، هناك استراحة قبل الشخصية الأخيرة र.
أنا أستخدم preg_replace مع نمط regex /[^ p {l} p {nd} p {mn} _]/u لمطابقة الكلمات. ولكن هذا يعامل الحرف الأخير ككلمة منفصلة.

هذه هي سلسلة الإدخال الخاصة بي मैनेजमेंट ، बंगलौ وأتوقع أن يكون الإخراج मैनेजमेंट बंगलौ بعد preg_replace

$cleanedString = preg_replace('/[^\p{L}\p{Nd}\p{Mn}_]/u', ' ', $name);

لكن الإخراج الذي أحصل عليه هو मैनेजमेंट बंगल र. ماذا أفعل خطأ هنا؟ أعتقد أن المشكلة تبدأ من كيفية تعامل Vim مع النص الذي لصقه.

هل كانت مفيدة؟

المحلول

جرب هذا regex "/[^\p{L}\p{Nd}\p{Mn}\p{Mc}_]/u"

ال O رمز في लौ يأخذ مساحة أفقية إضافية بدلاً من ae في मै. فئة يونيكود \p{Mn} يطابق علامات عدم التباعد فقط. يستخدم \p{Mc} لمطابقة علامات التباعد. يمكنك استخدام \p{M} لمطابقة جميع علامات الجمع: "/[^\p{L}\p{Nd}\p{M}_]/u"

من التعبير العادي. info/unicode

\p{M} أو \p{Mark}: شخصية تهدف إلى دمجها مع حرف آخر (على سبيل المثال ، لهجات ، أملوت ، مربعات مرفقة ، إلخ).

  • \p{Mn} أو \p{Non_Spacing_Mark}: شخصية تهدف إلى دمجها مع شخصية أخرى دون تناول مساحة إضافية (على سبيل المثال ، لهجات ، أملوت ، إلخ).
  • \p{Mc} أو \p{Spacing_Combining_Mark}: شخصية تهدف إلى دمجها مع شخصية أخرى تشغل مساحة إضافية (علامات حرف العلة في العديد من اللغات الشرقية).
  • \p{Me} أو \p{Enclosing_Mark}: يتم الجمع بين الحرف الذي يحيط بالحرف مع (الدائرة ، مربع ، Keycap ، إلخ).
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top