ビン番号のすべてのバイナリギャップを正規表現で捕まえたい。 たとえば、1010010001の場合、 "0"、 "00"、 "000"の3つの文字列を取得したいが、正規表現では "101"と "1001"の両方に3-rd "1"組み合わせ。ここに私の正規表現です:正規表現でビン番号のバイナリギャップを見つけよう
/1(0+)1/g
希望の結果を得るために私の正規表現を変更する必要がありますか?
ビン番号のすべてのバイナリギャップを正規表現で捕まえたい。 たとえば、1010010001の場合、 "0"、 "00"、 "000"の3つの文字列を取得したいが、正規表現では "101"と "1001"の両方に3-rd "1"組み合わせ。ここに私の正規表現です:正規表現でビン番号のバイナリギャップを見つけよう
/1(0+)1/g
希望の結果を得るために私の正規表現を変更する必要がありますか?
あなたは肯定先読みにそれを置くことによって、末尾1
がを消費しないされていることを確認する必要があります。
/1(0+)(?=1)/
^^^^^
がregex demoを参照してください。同じパターンのmatching variation
:
ここで、1
試合1
と、このテキストは\K
で省略されている /1\K0+(?=1)/
、1つの以上0
sは一致していると1
存在は0
秒後にチェックされます。
split()メソッドを使用してバイナリ文字列を '1'で分割すると簡単に解決できますが、配列は0になります。
「1」を使用する理由は何ですか? ['/0+/'](https://regex101.com/r/K9fXdD/1)。 –
1に囲まれたすべての0を検索したい – Aram810
['/1(0+)(?=1)/'](https://regex101.com/r/K9fXdD/2) –