`
Tony小熊
  • 浏览: 35346 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

preg_match 匹配中文

    博客分类:
  • php
阅读更多
preg_match 匹配中文出错
2010年01月06日 星期三 14:55

错误提示:

Warning: preg_match() [function.preg-match]: Compilation failed: PCRE does not support \L, \l, \N, \U, or \u at offset 2 in XXXXX on line 3

错误原因:

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,错误消失,匹配正确。

另外一个方法:放弃使用preg_match函数,改用ereg(),直接解决~

=============================

特别注意加小写的u
分享到:
评论

相关推荐

    preg-match绕过

    在 PHP 中,preg_match 函数用于执行正则表达式匹配。为了避免绕过 preg_match 函数的功能限制,通常可以采取以下措施: 过滤用户输入:在将用户输入作为正则表达式模式使用之前,应该对其进行过滤和验证,确保用户...

    php小经验:解析preg_match与preg_match_all 函数

    这个例子中,`preg_match()`会在找到第一次匹配后停止,如果你想获取所有匹配项,就需要使用`preg_match_all()`函数。 `preg_match_all()`函数执行全局正则匹配,找出所有匹配的结果。其语法与`preg_match()`相似,...

    php中使用preg_match_all匹配文章中的图片

    下面我们将详细讨论`preg_match_all`函数的使用、参数以及如何在实际场景中匹配文章中的图片。 `preg_match_all`函数的语法如下: ```php int preg_match_all(string pattern, string subject, array &$matches[, ...

    解决preg_match匹配过多字符长度的限制的思路分析

    到google里一搜,终于找到了解决方案:在php.ini中加入(随便放到哪里,我是直接放第一行的) pcre.backtrack_limit=-1 再次使用preg_match函数测试一下,大概1300多行上万个字符的字符串也能够匹配了。 项目中,用...

    PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】

    主要介绍了PHP preg_match实现正则表达式匹配功能,较为详细的介绍了preg_match函数的功能、参数含义、返回值及使用方法,并结合实例给出了preg_match输出是否匹配及匹配值的相关实现技巧,需要的朋友可以参考下

    php preg_match的匹配不同国家语言实例

    php preg_match的匹配不同国家语言实例 正则:[\S]{2,32} 过滤是管用的 PHP中: &lt;?php var_dump( preg_match("/[\S\b]{2,32}/",'ج') ); echo '&lt;hr&gt;'; var_dump( preg_match("/[\S\b]{2,32}/",'中国') ); 是...

    php使用preg_match()函数验证ip地址的方法

    preg_match('/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/', $ipAddress); 代码二、 &lt;?php /* *@return Boolen *@param String $ip 要匹配的ip地址 *@param ...

    PHP的preg_match匹配字符串长度问题解决方法

    然而,在使用preg_match时,开发者可能会遇到字符串长度限制的问题,尤其是当正则表达式非常复杂,或者要匹配的字符串特别长时,系统默认设置的限制可能会导致匹配失败。 根据给定的文件信息,这里涉及两个重要的...

    PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)

    在前面我们也说过,基于perl的正则表达式要快于POXIS正则表达式处理函数,所以我们只介绍以preg开头的基于perl的正则表达式。注意:在能偶使用字符串函数处理的时候,就不要使用正则表达式来处理字符串,因为字符串...

    preg_match_all使用心得分享

    preg_match_all — 进行全局正则表达式匹配 说明 复制代码 代码如下:int preg_match_all ( string pattern, string subject, array matches [, int flags] ) 在 subject 中搜索所有与 pattern 给出的正则表达式匹配...

    基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)

    在本文中,我们将探讨如何在数据采集后使用`preg_match_all`进行编码转换和正则匹配。`preg_match_all`是PHP中的一个强大函数,用于在字符串中执行全局正则表达式匹配。以下是关于这个主题的详细讲解: 1. **使用...

    php preg_match_all结合str_replace替换内容中所有img

    `preg_match_all` 是PHP中的一个正则表达式匹配函数,它可以找到所有匹配指定模式的字符串,并返回一个数组。在这个例子中,它的任务是找出所有`&lt;img&gt;`标签,并提取出`src`属性的值。使用的正则表达式是: ```regex...

    PHP中preg_match正则匹配中的/u、/i、/s含义

    PHP中preg_match正则匹配的/u /i /s是什么意思 /u 表示按unicode(utf-8)匹配(主要针对多字节比如汉字) /i 表示不区分大小写(如果表达式里面有 a, 那么 A 也是匹配对象) /s 表示将字符串视为单行来匹配 您...

    PHP中preg_match函数正则匹配的字符串长度问题

    然而,在使用`preg_match`进行复杂模式匹配时,有时会遇到无法正确提取或匹配到内容的情况,这可能是因为遇到了与字符串长度相关的限制问题。 首先,让我们了解一下`preg_match`函数的基本使用方法。`preg_match`...

Global site tag (gtag.js) - Google Analytics