扫码一下
查看教程更方便
解析:
正则表达式([abc])+=\1
中,捕获组内的正则为[abc]
,可以匹配a、b和c中的任意一个字符。假如匹配到的是a,那此时捕获组的编号为1,保存的内容就是匹配到的字符a。接下来的量词+
使前面的正则重复,此时如果说匹配到了b,那么捕获组的内容变成了b。正则([abc])
继续重复,如果匹配到了c,那么此时的\1
引用的捕获组的内容为c。接下来([abc])
不能匹配等号,那么正则表达式引擎继续下一个正则标记=
,它可以和字符=匹配。当引擎到达\1时,此时的\1保存的内容是c。因此可以匹配abc=c。同理,也可以匹配 cab=b 。 对于其他的两项,就不能匹配了。
这里需要说明的是,捕获组的编号是按照小括号的个数来的(非捕获组和断言等此类不算)。而不是按照重复的次数来编号的。因此正则([abc])+
虽然重复多次,但是只有一个捕获组。