Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在研究文字审查器。我有这段文字:
$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正则表达式修饰符
u
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);
http://ideone.com/cCoiNp