正規表現(つまり、すべての組み合わせ)を使用して、特定の単語のすべての一致を取得する必要があります
コンテンツ:
ABC
これから、[AZ][AZ] のようなパターンを与えると、AB と BC を取得する必要があります。現在、一致したパターンとして「AB」のみを指定しています。
前もって感謝します
int i = 0;
List<Match> matches = new List<Match>();
while(i < input.Length){
Match m = Regex.Match(input.Substring(i),"[A-Z]{2}");
if(m.Success){
matches.Add(m);
i += m.Index+1;
}else break;
}
lazy
次のようにマッチングをサポートするように実装することもできます。
public static IEnumerable<Match> Matches(string input, string pattern) {
int i = 0;
while (i < input.Length){
Match m = Regex.Match(input.Substring(i), "[A-Z]{2}");
if (m.Success) {
yield return m;
i += m.Index + 1;
}
else yield break;
}
}
//Use it
var matches = Matches(input, "[A-Z]{2}");
.NET はルックアラウンドでのキャプチャ グループをサポートします
var result=Regex.Matches(input,"(?=(..))")
.Cast<Match>()
.Select(x=>x.Groups[1].Value);
int i = 0;
List<Match> matches = new List<Match>();
while(i < input.Length){
Match m = Regex.Match(input,"[A-Z][Z-A]");
if(m.Success){
matches.Add(i++);
i = m.Index ++ 1;
}
}