PHP的preg_replace我输入的搜索使用preg_replace
,但是我希望我的搜索输入接受别人的语言多语言
保持 - 中国人,日本人,德国..等
删除 - 符号性格像@#$%^ *()的
这一个只保留英语preg_replace("/[^a-zA-Z0-9]+/", "", $search);
任何方式来设置FO多语言?
PHP的preg_replace我输入的搜索使用preg_replace
,但是我希望我的搜索输入接受别人的语言多语言
保持 - 中国人,日本人,德国..等
删除 - 符号性格像@#$%^ *()的
这一个只保留英语preg_replace("/[^a-zA-Z0-9]+/", "", $search);
任何方式来设置FO多语言?
这里的PHP unicode regex reference。加+
是没有必要的,因为PHP将通过串循环。 \s
将匹配所有空白字符。
preg_replace("![^\p{L}\p{N}\s]!", "", $search);
如果你想只匹配空格字符本身,你会在括号内添加它作为文字:
preg_replace("![^\p{L}\p{N} ]!", "", $search);
更新补充一点关于根据注释请求空间
虽然对于Java,简要概述here。
可以使用所谓的Posix的符号:
[^\p{Alnum}\p{M}]
首先是字母数字组,第二个的组合变音标记:口音。 后者不应忘记,因为人们可以写ĉ
为一体的Unicode点c-抑扬,也可作为“C”后面是组合用circumflex ^
(零宽度,这里由正常抑扬表示)。在某些语言中,基本字母有多个标记。
更正:
[^\p{L}\p{N}\p{M}]
对于相同的PHP的参考文献:http://www.php。 net/manual/en/regexp.reference.unicode.php –
所以,你想保留什么*做什么,你想要删除什么?使用黑名单而不是白名单会更容易吗? – deceze
为了正则表达式/ PHP中,'æ'是尽可能多的Unicode字符为'^'的。你最好打赌它作出黑名单,并简单地取而代之。 ('的preg_replace( “/ [!\” #¤%&\(\)= /] +”, “”,$搜索);') – h2ooooooo