wtorek, 8 lipca 2008

Wyrażenia regularne w C#

Wyrażenia regularne to podstawowe narzędzie przy analizie i modyfikacji tekstu. C# też oferuje odpowiednią klasę do używania wyrażeń regularnych. Mowa tu o klasie Regex.
Klasy można używać w dwojaki sposób, tworząc obiekty tej klasy lub też korzystać ze statycznych metod. W tych dwóch przypadkach, postępuje się w podobny sposób.

Wyszukiwanie tekstu

Klasa Regex posiada dwie metody posiadające kilka innych wariantów: Match i Matches. Pierwsza z nich zwraca jedynie pierwszy wynik wyszukiwania w postaci obiektu klasy Match.

string tekst = "Ala ma kota, a kot ma Ale";
Match match = Regex.Match(tekst,"kot.?");
while (match.Success) // czy zostało coś znalezione
{
Console.WriteLine(match.Value); // Wyświetlenie wyniku wyszukiwanie
match = match.NextMatch(); // odczytanie następnego wyniku
}

W powyższym przykładzie zastosowana została metoda Match, która zwraca pojedynczy wynik oraz metoda NextMatch(), która zwraca kolejny. Można pobrać całą kolekcję wyników przy pomocy metody Matches.

string tekst = "Ala ma kota, a kot ma Ale";
MatchCollection matches = Regex.Matches(tekst, "kot.?");
foreach (Match m in matches)
{
Console.WriteLine(m.Value);
}

Brak komentarzy: