写点什么

正则表达式.04 - 引用

用户头像
insight
关注
发布于: 2021 年 03 月 09 日
正则表达式.04 - 引用

前面我们说过,正则三大重要功能包括:校验数据的有效性、查找符合要求的文本、对文本进行切割和替换。无论是我们进行查找还是替换,很常见的一种情况就是需要找到指定的内容,并将其中部分内容替换成其他内容。那么问题就变成了如何在替换的时候,还能使用查找到的指定内容中的部分内容。

这个时候,我们就要用到引用了。

引用

其实用括号括起来还有另外一个作用,那就是“复用”。


在上一节,我们知道了每个分组都有编号,在知道了分组引用的编号 (number)后,大部分情况下,我们就可以使用 “反斜扛 + 编号”,即 \number 的方式来进行引用该分组,而 JavaScript 中是通过$编号来引用,如 $1


下面是一些在常见的编程语言中,分组查找和替换的引用方式:


分组引用在查找中使用

现在我们来看下在正则查找时如何使用分组引用。比如我们要找重复出现的单词,我们使用正则可以很方便地使“前面出现的单词再次出现”,具体要怎么操作呢?我们可以使用 \w+ 来表示一个单词,针对刚刚的问题,我们就可以很容易写出 (\w+) \1 这个正则表达式了。


分组引用在替换中使用

刚刚我们知道通过 \1 ,可以引用第一个分组,因此,当我们需要进行在替换中使用的时候,也可以直接通过 \1 的方式,表示我们在替换时需要保留这个分组,这就解决了最开始我们提出的那个问题:找到指定的内容,并将其中部分内容替换成其他内容。

需要注意的是,在 Java 中,查找和替换对于分组引用的声明是不一样的,如果需要在类似 Intellij IDEA 等编辑器中进行替换时,要注意对于替换的分组引用是使用 $1

用户头像

insight

关注

不要混淆行动与进展、忙碌与多产。 2018.11.17 加入

永远都是初学者

评论

发布
暂无评论
正则表达式.04 - 引用