我们在字符的连续匹配中使用过"abc\{1,3\}",最后得到的匹配的结果有abc,abcc,即c重复一次两次三次都能匹配到,但是如果需要匹配的是重复的abc这一个整个字符时,我们就需要分组,将abc作为一个整体,示例如下:
- \( \)
如上可知利用" \( " 和“ \) ” 将abc变成一个整体。
- 后向引用:表示在引用整个正则中分组中所匹配到的结果,\1表示第一个分组中的正则所匹配到的结果。如果是嵌套分组,分组顺序取决于分组符号的左侧部分部分的顺序。
如下所示,“h.\{4\}”表示h后面有4个任意字符串,所以三行都会匹配到。但是如果我们想要每一行第一个“h.\{4\}”匹配的字符与第二个匹配到的字符相同。可以先将第一个正则分组,在后面进行引用,例子如下:"\1"表示引用列第一个\(h.\{4\}\)匹配成功的字符,所以第三行就不能匹配成功了。因为对于第三行来说,第一个匹配成功的\(h.\{4\}\)字符为hello,但是“A”后面的是hilll,与前面的不一样。
- \1表示第一个分组中的正则所匹配到的结果,\2表示第二个分组中的正则所匹配到的结果。
如下所示,正则里面有两组,第一个\(h.\{4\}\)匹配成hello,第二个\(h.\{4\}\)匹配成hilll,后面\2匹配第二个组,即hilll,所以第四行匹配成功。
总结:
- \( 和 \)可以将一串字符变成一个整体。
- \1表示第一个分组中的正则所匹配到的结果,\2表示第二个分组中的正则所匹配到的结果。