正则表达式 - 匹配交替字符的模式

时间:2017-08-04 10:27:38

标签: regex string pattern-matching character

我希望匹配交替使用小写字符的模式。

ababababa -> match

我试过这个

([a-z][a-z])+[a-z]

但这也是一场比赛

ababxyaba

1 个答案:

答案 0 :(得分:11)

你可以使用带有2个反向引用的正则表达式来匹配交替的小写字母:

^([a-z])(?!\1)([a-z])(?:\1\2)*\1?$

RegEx Demo

RegEx分手:

  • ^:开始
  • ([a-z]):匹配组#1中的第一个字母
  • (?!\1):预计确保我们不会再次使用相同的字母
  • ([a-z]):在第3组捕获中匹配第二个字母
  • (?:\1\2)*:匹配零个或多个第一和第二个字母对
  • \1?:在结束前匹配可选的第一个字母
  • $:结束