xiaohua19881015
xiaohua19881015
采纳率0%
2018-09-29 10:26 阅读 344

有关php正则表达式的一个疑问

是有关正则表达式中的模式修饰符 /x 的使用的问题
文档中是这样写的:
如果设置了这个修饰符,模式中的没有经过转义的或不在字符类中的空白数据字符总会被忽略, 并且位于一个未转义的字符类外部的#字符和下一个换行符之间的字符也被忽略。 这个修饰符 等同于 perl 中的 /x 修饰符,使被编译模式中可以包含注释。 注意:这仅用于数据字符。 空白字符 还是不能在模式的特殊字符序列中出现,比如序列 (?( 引入了一个条件子组(译注: 这种语法定义的 特殊字符序列中如果出现空白字符会导致编译错误。 比如(?(就会导致错误)。
不是太能明白讲的意思,而且也没有例子说明,谁能看下这个啊?最好能给个用例
谢谢啊~

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • piaolankeke piaolankeke 2018-10-08 09:59
     $str = "ab cdeft";
    $matches0 = $matches1 = array();
    preg_match('/ab c/x', $str, $matches0);
    preg_match('/ab c/', $str, $matches1);
    print_r($matches0);
    print_r($matches1);
    
    

    结果为:Array ( ) Array ( [0] => ab c )

    $matches0 为空,因为模式中的空格被忽略, 匹配不到结果

    点赞 评论 复制链接分享

相关推荐