2017-08-04 83 views
5

我想匹配交替使用小寫字符的模式。正則表達式 - 交替字符的匹配模式

ababababa -> match 

我想這

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

,但是這將是一個比賽太

ababxyaba 
+0

「交替」或字符的只是「奇數」?如果是後者,用'^'和'$'錨來封閉模式。 –

+0

你是什麼意思交替小寫字母? – marvel308

+0

包含兩個相同字符的交替字符串 - > xyxyxyxy但不是xyxyxyabxyxy – cmplx96

回答

10

您可以使用此正則表達式與2向後引用匹配交替小寫字母:

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

RegEx Demo

正則表達式破碎:

  • ^:啓動
  • ([a-z]):比賽第一個字母捕獲組#1
  • (?!\1):前瞻,以確保我們不會再匹配相同的字母
  • ([a-z]):匹配捕獲組#3中的第二個字母
  • (?:\1\2)*:匹配零或更多對的第一和第二信
  • \1?的:匹配可選的第一字母端
  • $之前:結束
+1

它也與'aaaaaaaaaa'匹配 – ikleschenkov

+0

您是對的,現在已修復。 – anubhava