Reputation: 9600
(a|b)\1
What does \1
mean in this expression?
Upvotes: 53
Views: 32806
Reputation: 59287
It refers to what was matched in the first set of parentheses, the first group. Subsequent number means subsequent parentheses.
(1|2)(3|4)\1\2
Would match:
1313
1414
2323
2424
Note that if you have nested groups, just count from the opening brace (left brace).
(groupOne(groupTwo)stillOne(groupThree(groupFour)))
Upvotes: 31
Reputation: 301157
\1
- it means the first capturing group in the matched expression. \n
would be the nth capturing group. (Note that \0
would be whole match). In many engines, the upperlimit for n is 9, but some support up to 99 as well.
When used in regex like (a|b)\1
, it means that after a or b, the next character should be the first captured group, which is a or b so the regex here would match aa
or bb
.
Upvotes: 74