Wyrażenie regularne to wzór, który może być porównany z tekstem wejściowym. Platforma .NET dostarcza narzędzia, które są w stanie dokonać
takich dopasowań. Wzór składa się z jednego lub większej ilości znaków, operatorów czy całych konstrukcji.
Klasa Regex
Klasa Regex jest używana do reprezentowania wyrażeń regularnych. Poniżej lista powszechnie używanych metod z tej
klasy:
Metoda
Znaczenie
public bool IsMatch(string input)
sprawdza czy wyrażenie regularne określone w konstruktorze klasy Regex znajdzie dopasowanie w określonym ciągu wejściowym
public bool IsMatch(string input, int startat)
sprawdza czy wyrażenie regularne określone w konstruktorze klasy Regex znajdzie dopasowanie w określonym ciągu wejściowym
począwszy od określonej pozycji
public static bool IsMatch(string input, string pattern)
sprawdza czy określone wyrażenie regularne znajdzie dopasowanie w podanym ciągu wejściowym
public MatchCollection Matches(string input)
przeszukuje określony ciąg wejściowy w celu znalezienia wszystkich wystąpień wyrażenia regularnego
public string Replace(string input, string replacement)
zastępuje wszystkie wystąpienia wzorca określonym ciągiem zastępcznym
public string[] Split(string input)
dzieli ciąg wejściowy na tablicę podciągów na pozycjach określonych wzorem wyrażenia regularnego
W celu uzyskania kompletnej listy właściowości i metod klasy Regex proszę skorzystać z oficjalnej dokumentacji
Microsoft.
Przykłady zastosowania powyższych metod:
using System;
using System.Text.RegularExpressions;
namespace WyrazeniaRegularne
{
class Program
{
static void Main(string[] args)
{
string str = "Jedno przykładowe zdanie potrzebne do testu";
Console.WriteLine("Słowa zaczynające się od 'p': ");
PokazDopasowania(str, @"\bp\S*");
Console.WriteLine();
Console.WriteLine("Następny przykład: ");
Console.WriteLine();
str = "kolorowa krowa kłuje kijem krzywą kozę";
Console.WriteLine("Słowa zaczynające się od 'k' a kończące na 'a': ");
PokazDopasowania(str, @"\bk\S*a\b");
Console.WriteLine();
Console.WriteLine("Następny przykład: ");
Console.WriteLine();
str = "Witaj Drogi Użytkowniku!";
// Wyjaśnienie poniższego zapisu \\s+
// \s - poszukiwanie białych znaków
// + - więcej niż jeden znak - dlatego po zamianie mamy odstęp między wyrazami
string wzor = "\\s+";
string zamiana = " ";
Regex rgx = new Regex(wzor);
string wynik = rgx.Replace(str, zamiana);
Console.WriteLine("Oryginał: {0}", str);
Console.WriteLine("Po zmianie: {0}", wynik);
Console.ReadKey();
// Wynik działania programu
//Slowa zaczynajace sie od 'p':
//Wyrazenie: \bp\S*
//przykladowe
//potrzebne
//Nastepny przyklad:
//Slowa zaczynajace sie od 'k' a konczace na 'a':
//Wyrazenie: \bk\S*a\b
//kolorowa
//krowa
//Nastepny przyklad:
//Oryginal: Witaj Drogi Uzytkowniku!
//Po zmianie: Witaj Drogi Uzytkowniku!
}
static void PokazDopasowania(string text, string wyrazenie)
{
Console.WriteLine("Wyrażenie: {0}", wyrazenie);
MatchCollection mc = Regex.Matches(text, wyrazenie);
foreach (Match d in mc)
{
Console.WriteLine(d);
}
}
}
}