[英]Remove characters in a string that does not match letters, numbers, specific symbols, and Chinese characters in PHP
如果不是,我想删除字符串中的字符:
例如:
A3M \ Mfg. (&&$) *Co; 應龙龍.
变成:
A3M Mfg. () Co 應龙龍.
我试着这样做:
$string = 'A3M \ Mfg. (&&$) *Co; 應龙龍.';
$string = preg_replace('/[^-A-Za-z0-9().\/ \u3040-\u30ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff\uff66-\uff9f]/s', '', $string);
echo $string;
但不需要的字符仍然存在
PHP 支持使用
\\x{....}
而不是\\u\u003c/code>代码点表示法。
然而,有一种更好的方法来处理这个问题,使用unicode 字符类
\\p{Han}
来捕获所有中文字符。
使用此正则表达式搜索:
[^-\w()./\s\p{Han}]+
替换为空字符串。
代码:
$string = 'A3M \ Mfg. (&&$) *Co; 應龙龍.';
$string = preg_replace('~[^-\w()./\s\p{Han}]+~u', '', $string);
echo $string;
//=> "A3M Mfg. () Co 應龙龍."
请注意,由于原始字符串中可移动字符周围存在空格,因此它可能会留下很少的双空格实例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.