PHP学习之深入理解正则反引用和转义符
发布:smiling 来源: PHP粉丝网 添加日期:2020-04-05 17:48:41 浏览: 评论:0
本篇文章主要讲述的是正则表达式的反引用和转义符的原理以及应用,具有一定的参考价值,感兴趣的朋友可以了解一下。
一、正则反引用
正则表达式,在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正则中的转义符,当遇到多个`\` 的时候,我们可以先"去掉" 一个,然后,在去匹配。这样就好理解啦。
Tags: PHP正则 PHP转义符
- 上一篇:PHP正则过滤处理微信昵称中emoji字符的方法
- 下一篇:PHP之PCRE正则解析
相关文章
- ·php正则连接中文本程序(2013-11-12)
- ·三分钟学会PHP正则表达式(2013-11-13)
- ·巧用PHP正则表达式判断IP地址(2013-11-13)
- ·php用户注册时常用的一些检验函数总结(2014-01-05)
- ·php中ip地址 email格式 电话号码正则验证(2014-01-06)
- ·php正则字符串中图片地址表达式(2014-01-15)
- ·php 汉字正则表达式实例详解(2014-07-07)
- ·php 获取网页内的图片地址正则表达式(2014-07-18)
- ·php正则获取关键字、标题、网页描述代码(2014-07-24)
- ·php正则表达式替换URL链接地址为指定url(2014-07-26)
- ·php中网址、email、手机号码正则表达代码(2014-07-29)
- ·php中常用的正则表达式规则总结(2014-07-30)
- ·php中固定电话号码和手机号码正则表达式验证(2014-07-30)
- ·php利用正则过滤链接、标签,空格,换行符程序(2014-07-30)
- ·php 手机号码正则表达试程序代码(2014-07-31)
- ·php正则表达式之正则字符中的图片地址(2014-08-01)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)