PHP程序员站--PHP编程开发平台
 当前位置:主页 >> PHP高级编程 >> 高级应用 >> 

Warning:preg_match() [function.preg-match]: Co

Warning:preg_match() [function.preg-match]: Co

来源:PHP程序员站  作者:PHP程序员站  发布时间:2011-06-22
错误提示: bWarning/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 bD:XXX.php/b on line b25/bbr / 错误原因: preg_match(/^[u4e00-u9fa5]{1,4}$/,$st

错误提示:

<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手册中的描述

u(PCRE_UTF8)
此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8。本修正符在 Unix 下自 PHP 4.1.0 起可用,在 win32 下自 PHP 4.2.3 起可用。自 PHP 4.3.5 起开始检查模式的 UTF-8 合法性。

延伸阅读:
preg_replace_callback()函数用法
Tags: warning   preg_match   Compilation   failed   PCRE   does   not   support  
function.preg-match]: Co' target="_blank">在百度中搜索 "Warning:preg_match() [function.preg-match]: Co" 更多相关内容
function.preg-match]: Co' target="_blank">在谷歌中搜索 "Warning:preg_match() [function.preg-match]: Co" 更多相关内容
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号