建议删除特殊字符的最常见正则表达式似乎是这个 -
preg_replace( '/[^a-zA-Z0-9]/', '', $string );
问题是它还删除了非英文字符。
是否有正则表达式删除所有语言的特殊字符?或者唯一的解决方案是明确匹配每个特殊字符并删除它们?
答案 0 :(得分:4)
您可以改为使用:
preg_replace('/\P{Xan}+/u', '', $string );
\p{Xan}
就是unicode表的任何字母表中的数字或字母
\P{Xan}
只是一个数字或字母。它是[^\p{Xan}]
答案 1 :(得分:3)
您可以使用:
$string = preg_replace( '/[^\p{L}\p{N}]+/u', '', $string );