www.adminn.cn
站长正能量分享网!

PHP学习之深入理解正则反引用和转义符

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

本篇文章主要讲述的是正则表达式的反引用和转义符的原理以及应用,具有一定的参考价值,感兴趣的朋友可以了解一下。

一、正则反引用

正则表达式,在PHP中我经常能用到。用的场景也很多,比如,正则匹配字符串,判断字符是否存在,正则替换等等。

例子一:

  1. $string = 'abcd'
  2.  
  3. $re = preg_replace('/(a)/''\1A',$string);echo $re;//结果 
  4.  
  5. // aAbcd 

这里用到了正则的捕获组概念和反引用。

解释:

捕获组我们可以从第一个`(` 向后数, 第一个括号里面匹配到的内容,我们可以用 \1 来引用,为了看的明显,特意拼接了 `A` ,其实我们还可以用 $+数字来表示第几个捕获组。 这里可以用$1,效果和\1一样。

例子二:

  1. $string = 'abcd'
  2.  
  3. $re = preg_replace('/(a)/''$1B',$string); 
  4.  
  5. echo $re
  6.  
  7. //结果 
  8.  
  9. //aBbcd 

二、转义符

什么是转义符?

在PHP中我们用 `\` 来转译一些特殊的字符。

例子三:

  1. $string = 'abcd'
  2.  
  3. $re = preg_replace('/(a)/''\1B',$string); 
  4.  
  5. echo $re;//结果 
  6.  
  7. //aBbcd 

解释: 这里的 \1 把是作为捕获组的反引用。

例子四:

  1. $string = 'abcd'
  2.  
  3. $re = preg_replace('/(a)/''\\1B',$string); 
  4.  
  5. echo $re;//结果 
  6.  
  7. //aBcd 

解释:这里的` \\1 `,第一个`\`,转译了第二个`\`, 那么就成了 `\1B` , 其实效果和例子三的 `\1` 是一样的。

例子五:

  1. $string = 'abcd'
  2.  
  3. $re = preg_replace('/(a)/''\\\1B',$string); 
  4.  
  5. echo $re
  6.  
  7. //结果 
  8.  
  9. //\1Bbcd 

解释:这里的`\\\1`,第一个`\`,转译了第二个`\`,那么就剩下了`\\1`,`\\` 输出 `\`,最后,就剩下 `1`了。

三、总结

1、PHP正则中的反引用,\1 和 $1 效果是一样的,我们都可以拿来用。

2、PHP正则中的转义符,当遇到多个`\` 的时候,我们可以先"去掉" 一个,然后,在去匹配。这样就好理解啦。

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《PHP学习之深入理解正则反引用和转义符》
文章链接:https://www.adminn.cn/news/6832.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

本站源码仅供本地环境下学习借鉴研究使用!

源码请勿用于任何涉灰站点!净化网络,站长更有责!

支付宝扫一扫打赏