PHP learning: in-depth understanding of regular anti-quotes and escape characters

little bottle
Release: 2023-04-06 11:20:01
forward
2715 people have browsed it

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

一、正则反引用

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

例子一:

$string = 'abcd';
$re = preg_replace('/(a)/', '\1A',$string);echo $re;//结果
// aAbcd
Copy after login

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

解释:

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

例子二:

$string = 'abcd';
$re = preg_replace('/(a)/', '$1B',$string);
echo $re;

//结果
//aBbcd
Copy after login

二、转义符

什么是转义符?

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

例子三:

$string = 'abcd';
$re = preg_replace('/(a)/', '\1B',$string);
echo $re;//结果
//aBbcd
Copy after login

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

例子四:

$string = 'abcd';
$re = preg_replace('/(a)/', '\\1B',$string);
echo $re;//结果
//aBcd
Copy after login

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

例子五:

$string = 'abcd';
$re = preg_replace('/(a)/', '\\\1B',$string);
echo $re;

//结果
//\1Bbcd
Copy after login

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

三、总结

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

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

相关教程:正则表达式视频教程

The above is the detailed content of PHP learning: in-depth understanding of regular anti-quotes and escape characters. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:cnblogs.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template