Php Regexp和重音
我在做文字审查。 我有以下案文:Php Regexp和重音,php,regex,Php,Regex,我在做文字审查。 我有以下案文: $str = "Je connais ce con de conémi". 如果“con”是一个完整的词,我想替换它,而不是另一个词 如果我这样做: preg_replace("/\b(con)\b/i", "###", $str); 结果是: "Je connais ce ### de ###émi". Conémi已被审查。 这是因为conémi的“é”。只需添加uregex修饰符即可 preg_replace("/\b(con)\b/iu", "##
$str = "Je connais ce con de conémi".
如果“con”是一个完整的词,我想替换它,而不是另一个词
如果我这样做:
preg_replace("/\b(con)\b/i", "###", $str);
结果是:
"Je connais ce ### de ###émi".
Conémi已被审查。
这是因为conémi的“é”。只需添加
u
regex修饰符即可
preg_replace("/\b(con)\b/iu", "###", $str)
^--- here it is
另一种解决方案是使用PCRE unicode字符:
preg_replace("/(?<=\p{Z}|\p{P}|^)con(?=\p{Z}|\p{P}|$)/i", "###", $str);
preg\u replace(“/”(?请标记您使用的语言。我猜是PHP?@halfelf是preg\u replace
给您通风报信的吗?这似乎是PHP的问题。JavaScript和Python都返回“Je connais ce####de conémi”“
。哦,是的,很抱歉没有PHP标志。好的。它与PCRE unicode字符一起工作。谢谢。注意:“u”修饰符不能解决问题。@Pax Maximinus:它在这里解决了问题,PHP 5.3.17谢谢您的精确性。