【问题标题】:preg match (): range out of orderpreg match():范围乱序
【发布时间】:2011-04-02 18:38:57
【问题描述】:

我需要匹配一个只包含西里尔字母的字符串,所以我试试这个:

<?php  
$pattern="#[x\{0410}-x\{042F}]#u";  
$string="АФ";  
echo preg_match ($pattern,$string);  
?>  

但我得到了这个错误

警告:preg_match():编译失败:第 4 行 /home/ge0rgi/www/preg.php 中偏移 10 处的字符类范围乱序

【问题讨论】:

  • 在 x 前面试试反斜杠...\x

标签: php regex


【解决方案1】:

你还没有打开'{'语句。因为在它之前你有斜线。这就是为什么在 10 和 19 字符处有未定义的结尾

【讨论】:

    【解决方案2】:
    $pattern= "#[\x{0410}-\x{042F}]#u"; 
    

    返回 1 但不匹配 F...

    Array
    (
        [0] => А
    )
    

    【讨论】:

      猜你喜欢
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 2016-03-30
      • 2013-07-17
      • 1970-01-01
      相关资源
      最近更新 更多