我有输入搜索使用preg_replace
,但是我希望我的搜索输入接受其他语言
保持- 中国人,日本人,德国人......等。
删除- 符号字符,如 @#$%^*() 那些
这个只保留英文 preg_replace("/[^a-zA-Z0-9]+/", "", $search);
有什么方法可以设置多语言?
我有输入搜索使用preg_replace
,但是我希望我的搜索输入接受其他语言
保持- 中国人,日本人,德国人......等。
删除- 符号字符,如 @#$%^*() 那些
这个只保留英文 preg_replace("/[^a-zA-Z0-9]+/", "", $search);
有什么方法可以设置多语言?
虽然对于 java,这里有一个简明的概述。
您可以使用所谓的 Posix 表示法:
[^\p{Alnum}\p{M}]
第一个是字母数字组,第二个是组合变音符号:重音符号。不应忘记后者,因为可以写成ĉ
一个 Unicode 点 c-circumflex,也可以写成 'c' 后跟一个组合抑扬符^
(零宽度,这里用正常的抑扬符表示)。在某些语言中,一个基本字母有多个标记。
更正:
[^\p{L}\p{N}\p{M}]
这是PHP unicode 正则表达式参考。加号+
不是必需的,因为 PHP 将遍历字符串。将\s
匹配所有空白字符。
preg_replace("![^\p{L}\p{N}\s]!", "", $search);
如果您只想匹配空格字符本身,您可以将其作为文字添加到括号中:
preg_replace("![^\p{L}\p{N} ]!", "", $search);
更新为每个评论请求添加了一些关于空格的信息