2016-12-22 6 views
2

ビン番号のすべてのバイナリギャップを正規表現で捕まえたい。 たとえば、1010010001の場合、 "0"、 "00"、 "000"の3つの文字列を取得したいが、正規表現では "101"と "1001"の両方に3-rd "1"組み合わせ。ここに私の正規表現です:正規表現でビン番号のバイナリギャップを見つけよう

/1(0+)1/g 

希望の結果を得るために私の正規表現を変更する必要がありますか?

+0

「1」を使用する理由は何ですか? ['/0+/'](https://regex101.com/r/K9fXdD/1)。 –

+0

1に囲まれたすべての0を検索したい – Aram810

+0

['/1(0+)(?=1)/'](https://regex101.com/r/K9fXdD/2) –

答えて

3

あなたは肯定先読みにそれを置くことによって、末尾1がを消費しないされていることを確認する必要があります。

/1(0+)(?=1)/ 
     ^^^^^ 

regex demoを参照してください。同じパターンのmatching variation

ここで、1試合1と、このテキストは\Kで省略されている
/1\K0+(?=1)/ 

、1つの以上0 sは一致していると1存在は0秒後にチェックされます。

0

split()メソッドを使用してバイナリ文字列を '1'で分割すると簡単に解決できますが、配列は0になります。

関連する問題