正则表达式()()\1\2的用法

\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"。
看之前最好先去理解下捕获组的概念。

 

posted @ 2017-08-23 18:19  KylinStayHere  阅读(1417)  评论(0编辑  收藏  举报