如何在PHP中删除特殊字符并保留任何语言的字母?

时间:2013-09-27 20:43:59

标签: php preg-replace

我知道这应该从字符串中删除任何字符,并且只保留数字和英文字母。

$txtafter = preg_replace("/[^a-zA-Z 0-9]+/","",$txtbefore);

但我希望删除任何特殊字符,并保留任何语言的字母,如阿拉伯语或日语。

2 个答案:

答案 0 :(得分:4)

这可能适合你:

$repl = preg_replace('/[^\w\s]+/u','' ,$txtbefore);

这将删除文本中的所有非单词和非空格字符。 /u标志用于unicode支持。

答案 1 :(得分:1)

您可以使用\p{L}模式将任何字母和\p{N}匹配到任何数字字符。您还应该使用u修饰符:/\p{L}+/u

您的最终正则表达式可能如下:/[^\p{L}\p{N}]/u

另外请务必查看以下问题:

Regular expression \p{L} and \p{N}