正则表达式三

分组与编号

括号在正则中可以用于分组,被括号括起来的部分“子表达式”会被保存成一个子组。

不保存子组

在括号里面的会保存成子组,但有些情况下,你可能只想用括号将某些部分看成一个整体,后续不用再用它,类似这种情况,在实际使用时,是没必要保存子组的。这时我们可以在括号里面使用 ?: 不保存子组。

 

 

括号嵌套

我们只需要数左括号(开括号)是第几个,就可以确定是第几个子组。

命名分组

命名分组的格式为(?P<分组名>正则)。

分组引用

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

我给到了你一些在常见的编程语言中,分组查找和替换的引用方式:

 


 

分组引用在查找中使用

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

 

 

 

 

 

 

分组引用在替换中使用

和查找类似,我们可以使用反向引用,在得到的结果中,去拼出来我们想要的结果。还是使用刚刚日期时间的例子,我们可以很方便地将它替换成, 2020 年 05 月 10 日这样的格式。

 

 

 



 

 


 

 


 

posted @ 2023-02-04 16:10  xueer1234  阅读(14)  评论(0编辑  收藏  举报