- 反向引用
反向引用用于搜索前面匹配过的某个分组的文本,例如:
\b(\w+)\b\s+\1\b
这里的\1就代表前面的(\w+),编号从0开始,0表示整个正则表达式本身,从左向右分组依次编号1,2,3。。。。。
上面的正则等价于
\b(?<word>\w+)\b\s+\k<word>\b
这里面的
\k<word>
是固定写法,还有
\g<word>
其中word这个单词可以自定义,但是\k,\g只有这两种模式,\k代表和前面word匹配到的相同,\g代表把前面word里面的正则重新匹配一遍
例如,对于"This is a 'String'"这个字符串:
#(?<word>\"|\')(.*?)\k<word>#
上面匹配到"This is a 'String'"。
#(?<word>\"|\')(.*?)\g<word>#
这个则匹配到"This is a '。
如下所示