一、正则反引用
正则表达式,在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正则中的转义符,当遇到多个 ` \ ` 的时候,我们可以先 "去掉" 一个,然后,在去匹配。这样就好理解啦。
相关教程:正则表达式视频教程
以上就是PHP学习之深入理解正则反引用和转义符的详细内容,更多请关注Gxl网其它相关文章!
查看更多关于PHP学习之深入理解正则反引用和转义符的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did62676