如何替換字符串中的所有非單詞字符(utf-8)?替換utf8中的所有非單詞字符字符串
爲ASCII:
$url = preg_replace("/\W+/", " ", $url);
沒有任何等價物UTF-8?
如何替換字符串中的所有非單詞字符(utf-8)?替換utf8中的所有非單詞字符字符串
爲ASCII:
$url = preg_replace("/\W+/", " ", $url);
沒有任何等價物UTF-8?
您可以使用包含字母,數字和下劃線的的Xwd字符類:
$url = preg_replace('~\P{Xwd}+~u', ' ', $url);
如果你不想下劃線,你可以使用克桑
\p{Xwd}
(Perl的單詞字符)是一個預定義的字符類,\P{Xwd}
是這個類的否定。
u
修飾符表示必須將字符串視爲unicode字符串。
等價:
\p{Xan} <=> [\p{L}\p{N}]
\p{Xwd} <=> [\p{Xan}_]
你能解釋一下這個正則表達式嗎?這似乎是我的工作,我正在測試它。 – UFO
+1,我不知道'Xwd'屬性。 – Toto
@ M42:謝謝,所有的祕密都在這裏:http://pcre.org/pcre.txt –