ile basitleştirin Basitleştirilmiş örnekte, biri diğerine karşı 2 Normal İfadeler, bir tanesi büyük, diğeri değil. Fikir, etkin ile sonuçların birleştirildiği IEnumerable bir koleksiyon (aşağıda "birleştirildi") oluşturmak olacaktır.Etkinleştirme MatchCollections öğesini .Net Regex
string test = "abcABC";
string regex = "(?<grpa>a)|(?<grpb>b)|(?<grpc>c)]";
Regex regNoCase = new Regex(regex, RegexOptions.IgnoreCase);
Regex regCase = new Regex(regex);
MatchCollection matchNoCase = regNoCase.Matches(test);
MatchCollection matchCase = regCase.Matches(test);
//Combine matchNoCase and matchCase into an IEnumerable
IEnumerable<Match> combined= null;
foreach (Match match in combined)
{
//Use the Index and (successful) Groups properties
//of the match in another operation
}
Uygulamada, MatchCollections sonuçları binlerce içerebilir ve uzun dinamik olarak oluşturulan Regexes kullanarak sık çalıştırılacak, bu yüzden ben hala LINQ öğreniyorum vb diziler sonuçları, kopyalama uzak utangaç istiyorum ve Bunları birleştirmek için ne yapmalı, ne de performansın zaten yavaş bir süreç için ne yapacağı üzerine bulanık.
Match.Success
özelliği true
Kod olup olmamasına bakmaksızın diziler s
IEnumerable<Match>
için s'MatchCollection
dönüştürme:
Sanırım .Başka bir şekilde sonuçlarda çakışmayı önlemek istemediğiniz sürece .catcat() burada .Union() yönteminden daha iyi olabilir. – jmnben