登录  /  注册

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

little bottle
发布: 2019-04-25 16:23:31
转载
2508人浏览过

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

一、正则反引用

正则表达式,在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学习之深入理解正则反引用和转义符的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:博客园网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号