3

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

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

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

4

2 回答 2

7

可能这对你有用:

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

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

于 2013-09-27T21:01:56.943 回答
2

您可以使用该\p{L}模式来匹配任何字母和\p{N}任何数字字符。你也应该u像这样使用修饰符:/\p{L}+/u

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

也一定要检查这个问题:

正则表达式 \p{L} 和 \p{N}

于 2013-09-27T20:48:32.697 回答