错误提示:
<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,错误消失,匹配正确。
错误原因:在使用perl语法的正则匹配某些关键字要加上\u修饰符.见php手册中的描述