如何使用PHP去除所有非alpha,数字,空格或puncutation的字符?
我尝试了以下内容,但它删除了标点符号.
preg_replace("/[^a-zA-Z0-9\s]/", "", $str);
Run Code Online (Sandbox Code Playgroud)
Mat*_*hen 31
preg_replace("/[^a-zA-Z0-9\s\p{P}]/", "", $str);
Run Code Online (Sandbox Code Playgroud)
例:
php > echo preg_replace("/[^a-zA-Z0-9\s\p{P}]/", "", "?f?oo?. ba?r!");
foo. bar!
Run Code Online (Sandbox Code Playgroud)
\p{P}匹配所有Unicode标点字符(请参阅Unicode 字符属性).如果您只想允许特定的标点符号,只需将它们添加到否定的字符类.例如:
preg_replace("/[^a-zA-Z0-9\s.?!]/", "", $str);
Run Code Online (Sandbox Code Playgroud)