2017-11-22 6 views
2

文字列がこのようなパターンに従っているかどうかを確認しようとしていました。abbccc。すべての文字が設定されている位置の数だけ現れます。だから私はこのパターンで文字列を分割することを考えました:(?<=(\w))(?=\w)(?!\1)とそこから行く。問題は、上記の文字列(特に他の文字列)でも、a, bb, cccの代わりにRegex.Splita, a, bb, b, cccの5つの文字列が得られることです。私は正規表現に問題があると思ったが、を返すとRegex.Replaceはうまく働いた。何が問題なの?Regex.Splitでの問題

+0

を取得しますRegex.Split'(キャプチャグループがあり、キャプチャされた値も結果の配列)。 ().Select(x => x.Value).ToList() ' –

+0

置き換えられた作品は置き換えることができませんし、次に置き換えることはできません。スプリットイオン '_'? – EpicKip

+0

@EpicKipもちろん、それは私の質問ではありませんでした。 – NotADeveloper

答えて

2

あなたはそれを使用することができます。

(.)\1* 

あなたはあなたが `でそれをovercomplicate 3マッチA、BB、CCC

Demo

サンプルソース(run here

string pattern = @"(.)\1*"; 
    string input = @"abbccc"; 

    foreach (Match m in Regex.Matches(input, pattern)) 
     Console.WriteLine(m.Value);