加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

正向预查与反向预查的性能和用法是什么?

发布时间:2022-04-07 16:16:17 所属栏目:语言 来源:互联网
导读:有时候我们需要使用正则表达式的预查功能,因此就需要了解正向预查与反向预查,这篇问文章就主要给大家介绍正向预查与反向预查的作用以及用法,具有一定的参考价值,感兴趣的朋友就继续往下看吧。 了解正向预查反向预查前,我们先要知道正则的2个函数:preg_
      有时候我们需要使用正则表达式的预查功能,因此就需要了解正向预查与反向预查,这篇问文章就主要给大家介绍正向预查与反向预查的作用以及用法,具有一定的参考价值,感兴趣的朋友就继续往下看吧。
 
       了解正向预查&反向预查前,我们先要知道正则的2个函数:preg_match_all 、 preg_replace
 
       正向预查&反向预查
正向或反向预查都是非获取匹配,不进行存储供以后使用。
 
       1、正向预查
(?:pattern) 匹配结果
 
(?=pattern) 正向匹配
 
(?!pattern) 正向不匹配
 
       2、反向预查
(?<=pattern) 反向匹配。
 
(?<!pattern) 反向不匹配。
 
       什么叫非获取匹配(非捕获匹配),请看例子
 
       一:PHP正则正向预查实例
       PHP获取匹配实例
$str = 'XXXXjava6java7XXXX';
$perg = "/java(6|7)/"; //匹配java6 获取 java
 
preg_match_all($perg, $str, $matchs);
$str1 = preg_replace($perg, '', $str); //"XXXXjava6java7XXXX"
$str2 = preg_replace($perg, '1', $str); //"XXXX67XXXX"
       $matchs输出结果:
 
array(2) {
 [0]=>
 array(2) {
  [0]=>
  string(5) "java6"
  [1]=>
  string(5) "java7"
 }
 [1]=>
 array(2) {
  [0]=>
  string(1) "6"
  [1]=>
  string(1) "7"
 }
}
       $str1输出结果:
 
string(18) "XXXXjava6java7XXXX"
        
       $match 输出结果:
 
array(1) {
 [0]=>
 array(2) {
  [0]=>
  string(5) "java6"
  [1]=>
  string(5) "java7"
 }
}
       $str1输出结果:
 
string(18) "XXXXjava6java7XXXX"
对比例1中,我们发现没有括号匹配的结果,这就是我们说的非获取匹配,只匹配全本结果,不捕获括号中的子结果。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读