\1表示重复正则第一个圆括号内匹配到的内容
\2表示重复正则第二个圆括号内匹配到的内容
比如有以下正则:
([a-z])([a-z])\2\1
则可以匹配字符串abba
第一个圆括号内的正则匹配字符a,则在字符串最后\1这个位置必须是字符a,第二个括号匹配字符b,在倒数第二个位置\2必须是字符b
如果有嵌套的圆括号,顺序是按左括号的次序计算的

补充:([a-z])([a-z])\2\1先简化为(a)(b)\2\1,新手可以先不管\2\1。先看(a)(b),就是匹配“ab"。(a)(b)\2\1就是“ab"加上\2\1的内容进行匹配,\2这里是(b),(a)(b)\2就是匹配"abb",同理(a)(b)\2\1匹配"abba"。看之前最好先去理解下捕获组的概念。