深入理解正则反引用和转义符
2018-08-26 17:31:27来源:博客园 阅读 ()
一、正则反引用
正则表达式,在PHP中我经常能用到。用的场景也很多,比如,正则匹配字符串,判断字符是否存在,正则替换等等。
例子一:
$string = 'abcd'; $re = preg_replace('/(a)/', '\1A',$string); echo $re; //结果 // aAbcd
这里用到了正则的捕获组概念和反引用。
解释:
捕获组我们可以从第一个`(` 向后数, 第一个括号里面匹配到的内容,我们可以用 \1 来引用,为了看的明显,特意拼接了 `A` ,其实我们还可以用 $+数字来表示第几个捕获组。 这里可以用$1,效果和\1一样。
例子二:
$string = 'abcd'; $re = preg_replace('/(a)/', '$1B',$string); echo $re; //结果 //aBbcd
二、转义符
什么是转义符?
在PHP中我们用 `\` 来转译一些特殊的字符。
例子三:
$string = 'abcd'; $re = preg_replace('/(a)/', '\1B',$string); echo $re; //结果 //aBbcd
解释: 这里的 \1 把是作为捕获组的反引用。
例子四:
$string = 'abcd'; $re = preg_replace('/(a)/', '\\1B',$string); echo $re; //结果 //aBcd
解释:这里的` \\1 `,第一个`\`,转译了第二个`\`, 那么就成了 `\1B` , 其实效果和例子三的 `\1` 是一样的。
例子五:
$string = 'abcd'; $re = preg_replace('/(a)/', '\\\1B',$string); echo $re; //结果 //\1Bbcd
解释:这里的`\\\1`,第一个`\`,转译了第二个`\`,那么就剩下了`\\1`,`\\` 输出 `\`,最后,就剩下 `1`了。
三、总结
1、PHP正则中的反引用,\1 和 $1 效果是一样的,我们都可以拿来用。
2、PHP正则中的转义符,当遇到多个`\` 的时候,我们可以先"去掉" 一个,然后,在去匹配。这样就好理解啦。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 深入HTTP响应状态码速查表的详解 2020-02-21
- PHP多进程编程之僵尸进程问题的理解 2020-02-17
- php表单习惯用的正则表达式 2020-01-16
- 分析php中注册器模式类用法实例 2019-12-02
- 深入理解require与require_once与include以及include_once的 2019-10-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash