C# Regex z przykładami

C# Regex z przykładami
Wyrażenia regularne są jednym z najlepszych narzędzi używanych do dopasowywania, wyszukiwania i wymiany tekstu na podstawie określonych wzorów. C# oferuje obsługę wyrażeń regularnych za pośrednictwem System.Tekst.Regularexpressions Przestrzeń nazw, która zapewnia kompleksowy zestaw klas i metod używania Regex w kodzie. W tym artykule wyjaśniono C# Regex i zawiera przykłady skutecznego korzystania z niego, więc jeśli szukasz łatwego sposobu na naukę ich używania, przeczytaj ten przewodnik.

Regex w C#

Wyrażenie regularne to wzór używany do dopasowywania, wyszukiwania i manipulowania tekstem; Można go używać do różnych zadań, w tym sprawdzania poprawności danych wejściowych, wyszukiwania określonych wzorów w ciągu i zastępowania tekstu na podstawie określonych wzorców.

Przykłady C# Regex

W C# wyrażenia regularne są wdrażane za pośrednictwem klasy Regex, która zapewnia metody tworzenia, dopasowywania i manipulowania wyrażeniami regularnymi. Klasa Regex jest częścią przestrzeni nazw, która jest zawarta w .Ramy netto, oto cztery przykłady omówione w tym przewodniku:

  • Dopasowanie prostego wzoru
  • Wyodrębnienie podstępów z łańcucha
  • Zastąpienie podłoża w ciągu
  • Podział struny
  • Walidacja wejścia

Przykład 1: Dopasowanie prostego wzoru - C# Regex

W tym przykładzie użyjemy Regex, aby dopasować prosty wzór w ciągu. Utworzymy obiekt Regex, który pasuje do wzoru „CAT” i użyjemy go do wyszukiwania wzoru w ciągu.

za pomocą systemu;
za pomocą systemu.Tekst.Regularexpressions;
Program klasowy

statyczne void main ()

String input = "witam i witam w Linuxhint";
Regex Regex = new Regex („Welcome”);
Match Match = Regex.Dopasowanie (wejście);
if (dopasowanie.Powodzenie)

Konsola.WriteLine („Znaleziono mecz:” + mecz.Wartość);

w przeciwnym razie

Konsola.Writeline („Nie znaleziono meczu.");


W tym kodzie tworzymy obiekt Regex, który pasuje do wzorca „Witamy” i używamy go do wyszukiwania wzoru w ciągu „Witaj i witamy w Linuxhint.„Metoda dopasowania zwraca obiekt dopasowania, który zawiera informacje o meczu, w tym pozycję meczu i wartość dopasowania. Jeśli znaleziono dopasowanie, drukujemy wartość dopasowania do konsoli, a jeśli nie zostanie znalezione dopasowanie, drukujemy wiadomość wskazującą, że nie znaleziono dopasowania, oto wyjście kodu:

PRZYKŁAD 2: Wyodrębnienie podrzędnych z ciągu - C# Regex

W tym przykładzie użyjemy Regex do wyodrębnienia podrzędnych z ciągu. Utworzymy obiekt Regex, który pasuje do wzoru dla prawidłowego numeru telefonu i użyjemy go do wyodrębnienia kodu obszarowego z ciągu numeru telefonu.

za pomocą systemu;
za pomocą systemu.Tekst.Regularexpressions;
Program klasowy

statyczne void main ()

String input = "Numer telefonu: (361) 785-9370";
Regex Regex = new Regex (@"\ ((\ d 3) \) (\ d 3)-(\ d 4)");
Match Match = Regex.Dopasowanie (wejście);
if (dopasowanie.Powodzenie)

Konsola.WriteLine („Numer telefonu:” + dopasuj.Wartość);
Konsola.WriteLine („Kod obszaru:” + dopasuj.Grupy [1].Wartość);
Konsola.WriteLine („cyfry:” + dopasowanie.Grupy [2].Wartość);

w przeciwnym razie

Konsola.Writeline („Nie znaleziono meczu.");


W tym kodzie tworzymy obiekt Regex, który pasuje do wzoru dla kodu obszarowego numeru telefonu, który jest zamknięty w nawiasach. Używamy właściwości grupowego obiektu meczowego, aby uzyskać dostęp do przechwyconej grupy, która zawiera kod obszarowy.

Wyrażenie regularne @”\ ((\ D 3) \) (\ d 3)-(\ d 4)” Dopasowuje cały wzór numeru telefonu, który składa się z kodu obszarowego zamkniętego w nawiasach, przestrzeni i trzech cyfr, a następnie łącznika i czterech cyfr. Pierwsza grupa przechwytująca (\ D 3) odpowiada kodowi obszaru, druga grupa przechwytująca (\ d 3) odpowiada trzem cyfrom po przestrzeni, a trzecia grupa przechwytująca (\ d 4) odpowiada czterema cyfry po łączniku. Jeśli nie znaleziono żadnego dopasowania, drukujemy komunikat wskazujący, że nie znaleziono dopasowania, oto wyjście kodu:

Przykład 3: Zastąpienie podłoża w ciągu - C# Regex

W tym przykładzie użyjemy Regex do zastąpienia podłoża w ciągu. Utworzymy obiekt Regex, który pasuje do wzoru dla słowa, i użyjemy go do zastąpienia wszystkich wystąpień słowa „pies” słowem „kot” w danym ciągu.

za pomocą systemu;
za pomocą systemu.Tekst.Regularexpressions;
Program klasowy

statyczne void main ()

String input = "Witam i witaj w Linuxhint.";
Regex Regex = new Regex („Hello”);
String Output = Regex.Zamień (wejście, „Pozdrowienia”);
Konsola.WriteLine (wyjście);

Ten kod pokazuje, jak użyć zamiennika (), aby zastąpić pierwsze wystąpienie wyrażenia regularnego w ciągu nowej wartości. W tym kodzie tworzymy obiekt Regex, który pasuje do wzoru „Hello”. Używamy metody zastępowania, aby zastąpić wszystkie wystąpienia wzoru „Pozdrowienia”, a wynikowy ciąg jest następnie drukowany do konsoli, a oto wyjście kodu:

Przykład 4: Podział ciągu - C# Regex

W tym przykładzie użyjemy Regex do podziału ciągu na podjawy. Utworzymy obiekt Regex, który pasuje do wzoru dla Whitespace, i użyjemy go do podziału danego ciągu na tablicę podłoża.

za pomocą systemu;
za pomocą systemu.Tekst.Regularexpressions;
Program klasowy

statyczne void main ()

String input = "Witam i witaj w Linuxhint.";
Regex Regex = newRegex (@"\ s+");
String [] Substrings = Regex.Split (wejście);
Foreach (String Substring in Substrings)

Konsola.WriteLine (podaj);


W tym kodzie tworzymy obiekt Regex, który pasuje do wzorca znaków Whitespace, takich jak przestrzenie i karty. Używamy metody podziału do podziału ciągów wejściowych na tablice podrzędne, używając wzoru Whitespace jako ogranicznika. Powstałe podkład są następnie drukowane do konsoli za pomocą pętli foreach, a oto wyjście kodu:

Ten kod pokazuje, jak używać split (), aby podzielić ciąg na tablicę podłoża na podstawie dopasowania wyrażenia regularnego. W tym przypadku wyrażenie regularne pasuje do jednego lub więcej znaków Whitespace (\ S+), więc ciąg wejściowy jest podzielony na trzy podjazdy: „Hello”, „and” i „Witamy w Linuxhint”.

Przykład 5: Korzystanie z wyrażenia regularnego do weryfikacji wejścia - C# Regex

W tym przykładzie użyjemy Regex do sprawdzania danych wejściowych od użytkownika. Utworzymy obiekt Regex, który pasuje do wzorca prawidłowego adresu e -mail i użyjemy go do weryfikacji danych wejściowych dostarczonych przez użytkownika.

za pomocą systemu;
za pomocą systemu.Tekst.Regularexpressions;
Program klasowy

statyczne void main ()

Konsola.Napisz („Wprowadź swój adres e -mail:”);
String Input = konsola.Czytaj linię();
Regex Regex = nowy Regex (@"^[\ w- \.]+@([\ w-]+\.)+[\ w-] 2,4 $ ”);
if (Regex.Ismatch (wejście))

Konsola.WriteLine („Prawidłowy adres e -mail.");

w przeciwnym razie

Konsola.WriteLine („Nieprawidłowy adres e -mail.");


W tym kodzie tworzymy obiekt Regex, który pasuje do wzorca prawidłowego adresu e -mail. Wzór jest złożonym wyrażeniem regularnym, który pasuje do formatu typowego adresu e -mail. Używamy metody ISMACH, aby sprawdzić, czy dane wejściowe dostarczone przez użytkownika pasuje do wzoru, a jeśli wejście pasuje do wzoru, drukujemy wiadomość wskazującą, że adres e -mail jest prawidłowy, jeśli wejście nie pasuje do wzoru, drukujemy wiadomość wskazując, że adres e -mail jest nieprawidłowy.

Niektóre wspólne wyrażenia od regularności

Tabela wyrażeń od regularności zawiera listę wspólnych wzorców wyrażeń regularnych używanych do manipulacji tekstem w C#. Kolumna „Wyrażenie” zawiera rzeczywistą składnię używaną do dopasowywania tekstu, podczas gdy kolumna „Opis” zawiera krótkie wyjaśnienie funkcji wzorca:

Wyrażenie Opis
„X, y” Dopasowuje się między występowaniem x i y poprzedniego znaku lub grupy
„+” Pasuje do jednego lub więcej z poprzedniej postaci lub grupy
„^” Odpowiada początkowi ciągu
„[]” Pasuje do dowolnej postaci w nawiasach
"N" Odpowiada dokładnie n wystąpieniu poprzedniego znaku lub grupy
„[^]” Pasuje do dowolnej postaci nie w nawiasach
"." Pasuje do dowolnej pojedynczej postaci oprócz nowej linii
„$” Odpowiada koniec łańcucha
"S" Dopasowuje dowolny znak Whitespace (przestrzeń, karta, Newline itp.)
"\S" Pasuje do dowolnego postaci nie-białej
„W” Dopasowuje dowolny znak słów (litera, cyfra lub podkreślenie)
"\D" Dopasowuje dowolną cyfrę (0-9)
„()” Grupuje razem serię postaci
„W” Pasuje do dowolnej postaci bez słowa
Pasuje do jednego lub więcej z poprzedniej postaci lub grupy
"\D" Odpowiada dowolnej postaci, która nie jest cyfrą

Wniosek

Podsumowując, wyrażenia regularne są potężnym sposobem pracy z danymi tekstowymi w C#. Te 5 przykładów pokazuje wszechstronność Regex, od prostego dopasowania wzoru do bardziej zaawansowanych operacji, takich jak walidacja i manipulacja ciągami. Opanowując Regex, możesz znacznie zwiększyć swoją zdolność do pracy z danymi tekstowymi w C#.