質問

この例は正常に機能します:

echo preg_replace("/\bI\b/u", 'we', "I can"); // we can

これは、「u」修飾子を使用しているにもかかわらず、ロシアの手紙が使用されていません。

echo preg_replace("/\bЯ\b/u", 'мы', 'Я могу'); // still "Я могу"

問題は、これを修正するために何をすべきかということです。
ありがとう。

役に立ちましたか?

解決

PCRE(によって使用されるライブラリ preg_replace), \b ASCIIの意味での単語境界のみを指します。 [a-zA-Z0-9_] 単語文字です。

一致したい場合 Я 文字、数字、または _ 直前または直後に使用できます。

(?<![\p{L}0-9_])Я(?![\p{L}0-9_])

まだ使用する必要があります u 修飾子。

他のヒント

単語の境界はです 多くの場合、直感に反する.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top