2017-08-04 5 views
5

小文字が交互になるパターンに一致させたい。regex - 交替する文字のパターン

ababababa -> match 

私はこの

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

を試みたが、これはあなたが小文字交互に一致させるために2後方参照して、この正規表現を使用することができますあまりにも

ababxyaba 
+0

「交互」または文字だけの「奇数」を終了?後者の場合、 '^'と '$'アンカーでパターンを囲みます。 –

+0

小文字を交互に使用するとどういう意味ですか? – marvel308

+0

同じ文字の2つの交替を含む文字列 - > xyxyxyxyではなくxyxyxyabxyxy – cmplx96

答えて

10

試合のようになります。

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

RegEx Demo

正規表現の分裂:

  • ^:スタート
  • ([a-z]):グループ#1
  • (?!\1)取り込むに最初の文字をマッチ:確認するために、先読みを我々は再び
  • を同じ文字と一致しません
  • ([a-z]):キャプチャグループ#3の2番目の文字に一致します。
  • (?:\1\2)*:第一及び第二の手紙
  • \1?のゼロ個以上のペアを一致:最後
  • $前に、オプションの最初の文字を一致:
+1

これは 'aaaaaaaaaa 'にもあてはまります – ikleschenkov

+0

あなたは正しいので、今修正されました。 – anubhava

関連する問題