4 Eylül 2016 Pazar

Regex Yardımcı Sınıfları

MatchCollection Sınıfı
Bu sınıf geleneksel bir collection sınıfı.
Bracket Operator
Eşleşmelere sıra numarası ile erişebilmemizi sağlar.
MatchCollection matches = ...;
Match match = matches[0]; 
Count Alanı
Kaç tane eşleşme olduğunu belirtir.
string myString = "...";
Regex rx = new Regex("...");
MatchCollection matches = rx.Matches(myString);
if (matches.Count > 0)
{...}
En sonuncu eşleşmeye şöyle erişiriz.
string myString = "...";
var matches = Regex.Matches(myString, "...");
var match = matches[matches.Count - 1];
Match Sınıfı
Match Sınıfı yazısına taşıdım.

Group Sınıfı
Capture Alanı
Yakalanan bir grup aslında n defa capture etmiş olabilir. Yani regex şöyle tanımlı ise capture group sondaki + yüzünden bir çok defa değer yakalamış olabilir.
Regex regex = new Regex("...(.*?\\n)+...");
Yakalanan değere erişmek için şöyle yaparız.
Match match = ...;
match.Groups[1].Captures[0].ToString();
Linq ile kullanmak için şöyle yaparız.
Match match = ...;
string str = string.Join(Environment.NewLine, match.Groups[1].
  Captures.OfType<Capture>());
Success Alanı
Eşleşmenin başarılı olup olmadığını döndürür. Yukarıda örneği var. Success alanı Regex.Match() metodu ile işe yarar. Regex.Matches zaten başarılı eşleşmeleri döndüğü için aşağıdaki kullanım biraz gereksiz.
string strRegex = @"...";

Regex myRegex = new Regex(strRegex, RegexOptions.None);
string strTargetString = @"...";

foreach (Match myMatch in myRegex.Matches(strTargetString))
{
  if (myMatch.Success) //Bu gereksiz  {
    // Add your code here
  }
}







Hiç yorum yok:

Yorum Gönder