preg_match /u 验证中文时要增加/U 中文中{1,2}即1或是2个汉字

来源:互联网 发布:socket accept 端口 编辑:程序博客网 时间:2024/05/29 07:36
preg_match /u
2011-04-29 13:02
Warning:preg_match() [<a href='function.preg-match'>function.preg-match</a>]: Compilation failed: PCRE does not support \L, \l, \N, \U, or \u at offset 3

错误提示:

<b>Warning</b>:  preg_match() [<a href='function.preg-match'>function.preg-match</a>]: Compilation failed: PCRE does not support \L, \l, \N, \U, or \u at offset 3 in <b>D:XXX.php</b> on line <b>25</b><br />

错误原因:

  preg_match("/^[\u4e00-\u9fa5]{1,4}$/",$str);

在使用上述代码匹配汉字时,出现如题错误。

测试1:

  preg_match("/^[\u4e00-\u9fa5]{1,4}/",$str);

去掉结尾的“$”,错误依旧。

测试2:

preg_match("/^[\x4e00-\x9fa5]{1,4}/",$str);

将u改为“x”,错误消失,但是匹配失败。

测试3:

preg_match("/^[\x{4e00}-\x{9fa5}]{1,4}/",$str);

加上大括号,错误提示:

<b>Warning</b>:  preg_match() [<a href='function.preg-match'>function.preg-match</a>]: Compilation failed: character value in \x{...} sequence is too large at offset 9 in <b>D:XXX.php</b> on line <b>25</b><br />

测试4:

preg_match("/^[\x{4e00}-\x{9fa5}]{1,4}/u",$str);

加入参数u,错误消失,匹配正确。

原创粉丝点击