4

我正在研究文字审查器。我有这段文字:

$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 的“é”。

4

1 回答 1

1

只需添加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

于 2012-12-14T08:30:11.663 回答