PHP

PHP正则处理中文,及\L,\x{}等错误解决

Elysian
2021-10-13 / 0 评论 / 90 阅读 / 正在检测是否收录...

正确代码如下:

$res=array();
$str="你好aaaaa啊"
preg_match_all("/[\x{4e00}-\x{9fa5}]+/u",$str,$res);
var_dump($res);
//输出
//array(1) { [0]=> array(2) { [0]=> string(6) "你好" [1]=> string(3) "啊" } }

注意点:
常规正则是: [\u4e00-\u9fa5]
PHP正则使用这种类型会报错: PCRE does not support \L, \l, \N, \P
所以PHP支持的中文正则是: [\x{4e00}-\x{9fa5}]
但是只写这种内容还是会报错: preg_replace(): Compilation failed: character value in \x{} or \o{} is too large
所以就需要在正则字符串后缀加上u,例如上面正确例子的/[x{4e00}-x{9fa5}]+/ u

0

评论

博主关闭了所有页面的评论