2017-02-01 8 views

答えて

2

すでに最初の試合で2番目のゼロの前に1を選択しています。

100001 0001 
^^^^^^ 

これは最初の一致です。残りはちょうどあなたの正規表現と一致しない0001です。あなたは先読み/ lookbehindsを使用している場合は、この動作を回避することができます


(?<=1)(0*)(?=1) 

Live example


を使用すると、JavaScriptでlookbehindsを使用することはできませんので、一つだけを使用するのに十分です先読み:重複を防ぐために:

1(0*)(?=1) 

Live example


そして、あなたのregex101例えばヒント:あなたが複数の選択を防ぐグローバルフラグを追加しませんでした。

2

重複する文字列を一致させる必要があります。 regex demo

enter image description here

を参照してください

var regex = new Regex("(?=(10*1))"); 
var values = regex.Matches(intBinaryString) 
    .Cast<Match>() 
    .Select(m => m.Groups[1].Value) 
    .ToList(); 

使用します

関連する問題