这个例子很好用:
echo preg_replace("/\bI\b/u", 'we', "I can"); // we can
即使我使用“你”修饰符,这个俄语字母也用不起作用:
echo preg_replace("/\bЯ\b/u", 'мы', 'Я могу'); // still "Я могу"
所以问题是我应该怎么做才能解决这个问题? 感谢。
答案 0 :(得分:3)
在PCRE(preg_replace
使用的库)中,\b
仅指ASCII字义的字边界,即只有[a-zA-Z0-9_]
是字符。
如果您希望匹配之前或之后没有字母,数字或Я
的{{1}}字符,您可以使用:
_
您仍然必须使用(?<![\p{L}0-9_])Я(?![\p{L}0-9_])
修饰符。
答案 1 :(得分:0)