我希望匹配交替使用小写字符的模式。
ababababa -> match
我试过这个
([a-z][a-z])+[a-z]
但这也是一场比赛
ababxyaba
答案 0 :(得分:11)
你可以使用带有2个反向引用的正则表达式来匹配交替的小写字母:
^([a-z])(?!\1)([a-z])(?:\1\2)*\1?$
RegEx分手:
^
:开始([a-z])
:匹配组#1中的第一个字母(?!\1)
:预计确保我们不会再次使用相同的字母([a-z])
:在第3组捕获中匹配第二个字母(?:\1\2)*
:匹配零个或多个第一和第二个字母对\1?
:在结束前匹配可选的第一个字母$
:结束