zoukankan      html  css  js  c++  java
  • preg_match 匹配中文出错

    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(),直接解决~

  • 相关阅读:
    MySQL
    MySQL
    MySQL
    javaScript之深度理解原型链
    javaScript之this的五种情况
    ES6之箭头函数中的this
    javaScript之跨浏览器的事件对象
    javaScript之事件处理程序
    javaScript之promise
    VUE之使用百度地图API
  • 原文地址:https://www.cnblogs.com/webu/p/2799793.html
Copyright © 2011-2022 走看看