4

私は単語検閲に取り組んでいます。私はこのテキストを持っています:

$str = "Je connais ce con de conémi".

別の単語ではなく、単語全体の場合は「con」を置き換えたいと思います。

私がこれを行う場合:

preg_replace("/\b(con)\b/i", "###", $str);

結果は:

"Je connais ce ### de ###é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 に答える