$str = 'کس نے موسیٰ کے بارے میں سنا ہے؟';
$str = preg_replace('/(?<=\b)موسیٰ(?=\b)/u', 'Musa', $str);
$str = preg_replace('/(?<=\b)سنا(?=\b)/u', 'suna', $str);
echo $str;
これは、موسیٰ
の代わりに失敗します。それはکس نے Musa کے بارے میں suna ہے؟
を与えるべきである代わりにکس نے موسیٰ کے بارے میں suna ہے؟
を与える。一部の単語/文字でpreg_replaceが機能しない
これは、ٰ
で終わるすべての単語(تعالیٰ
など)で発生しています。 ٰ
が単語の途中にある単語(単語はٰ
で始まりません)の場合に機能します。これは\b
がٰ
で動作しないことを意味しますか?バグですか?
少し説明が修正されています:* '\ b'は、前に**あるならば一致し、**が' \ w' *に属しています(パターンに '\ b'が2つあります)。 –