2016-04-01 13 views
1

たとえば、私は正規表現が繰り返し文字を含むすべてのサブシーケンスを、一致させたい順にすべてのサブシーケンスに一致する正規表現、繰り返し文字

"aaaaaa". 

を取ることができます。

は数に入れる私たちの文字ができます:サブシーケンスの合計数を意味することは代わりに3

明確化のため、5にする必要があります。私たちのシーケンスが

"a1a2a3a4a5a6" 

のようになります。すべてのサブは、次のとおりです。

"a1a2", "a2a3". "a3a4", "a4a5", "a5a6" 

私は正規表現でそれを行うことができますか?私は現在Javaでプログラミングしていますが、そこにアルゴリズムを開発することは可能ですが、私はこれを避けたいと思います。

+1

http://stackoverflow.com/questions/5616822/python-regex-find-all-overlapping-matchesが役立ちます。 –

+0

これはjava内で可能であることを理解していますが、私の現在のスキルはかなり乱雑になりますので、正規表現のオプションであるかどうかを尋ねていました。私はより明確に編集します。 – Alex

+0

'(?=((a)\ 2))' - 値はグループ1にあります。 –

答えて

0

次の正規表現を使用することができます。

(?=((a)\2)) 

肯定先読み内の重複部分文字列をキャプチャする技術がhere記述されているdemo

を参照してください。

違いは2つのキャプチャグループを使用する必要があるということです.1つは「機能的」技術的な内部グループであり、2つの同一の連続したシンボルと一致することを確認します。必要な値を抽出します。

関連する問題