C # - wyrażenia regularne

ZA regular expressionto wzorzec, który można dopasować do tekstu wejściowego. Platforma .Net udostępnia mechanizm wyrażeń regularnych, który umożliwia takie dopasowywanie. Wzorzec składa się z co najmniej jednego literału znakowego, operatora lub konstrukcji.

Konstrukcje do definiowania wyrażeń regularnych

Istnieją różne kategorie znaków, operatorów i konstrukcji, które umożliwiają definiowanie wyrażeń regularnych. Kliknij poniższe łącza, aby znaleźć te konstrukcje.

  • Postać ucieka

  • Klasy postaci

  • Anchors

  • Konstrukcje grupujące

  • Quantifiers

  • Konstrukcje odwołań wstecznych

  • Konstrukcje naprzemienne

  • Substitutions

  • Różne konstrukcje

Klasa Regex

Klasa Regex służy do reprezentowania wyrażenia regularnego. Posiada następujące powszechnie używane metody -

Sr.No. Metody i opis
1

public bool IsMatch(string input)

Wskazuje, czy wyrażenie regularne określone w konstruktorze Regex znajduje dopasowanie w określonym ciągu wejściowym.

2

public bool IsMatch(string input, int startat)

Wskazuje, czy wyrażenie regularne określone w konstruktorze Regex znajduje dopasowanie w określonym ciągu wejściowym, zaczynając od określonej pozycji początkowej w ciągu.

3

public static bool IsMatch(string input, string pattern)

Wskazuje, czy określone wyrażenie regularne znajduje dopasowanie w określonym ciągu wejściowym.

4

public MatchCollection Matches(string input)

Przeszukuje określony ciąg wejściowy dla wszystkich wystąpień wyrażenia regularnego.

5

public string Replace(string input, string replacement)

W określonym ciągu wejściowym zastępuje wszystkie ciągi, które pasują do wzorca wyrażenia regularnego, określonym ciągiem zastępczym.

6

public string[] Split(string input)

Dzieli ciąg wejściowy na tablicę podciągów w pozycjach zdefiniowanych przez wzorzec wyrażenia regularnego określony w konstruktorze Regex.

Aby uzyskać pełną listę metod i właściwości, przeczytaj dokumentację firmy Microsoft dotyczącą języka C #.

Przykład 1

Poniższy przykład wyszukuje słowa zaczynające się na literę „S” -

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
   class Program {
      private static void showMatch(string text, string expr) {
         Console.WriteLine("The Expression: " + expr);
         MatchCollection mc = Regex.Matches(text, expr);
         
         foreach (Match m in mc) {
            Console.WriteLine(m);
         }
      }
      static void Main(string[] args) {
         string str = "A Thousand Splendid Suns";
         
         Console.WriteLine("Matching words that start with 'S': ");
         showMatch(str, @"\bS\S*");
         Console.ReadKey();
      }
   }
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

Matching words that start with 'S':
The Expression: \bS\S*
Splendid
Suns

Przykład 2

Poniższy przykład dopasowuje słowa, które zaczynają się od „m” i kończą na „e” -

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
   class Program {
      private static void showMatch(string text, string expr) {
         Console.WriteLine("The Expression: " + expr);
         MatchCollection mc = Regex.Matches(text, expr);
         
         foreach (Match m in mc) {
            Console.WriteLine(m);
         }
      }
      static void Main(string[] args) {
         string str = "make maze and manage to measure it";

         Console.WriteLine("Matching words start with 'm' and ends with 'e':");
         showMatch(str, @"\bm\S*e\b");
         Console.ReadKey();
      }
   }
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

Matching words start with 'm' and ends with 'e':
The Expression: \bm\S*e\b
make
maze
manage
measure

Przykład 3

Ten przykład zastępuje dodatkowe białe znaki -

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
   class Program {
      static void Main(string[] args) {
         string input = "Hello   World   ";
         string pattern = "\\s+";
         string replacement = " ";
         
         Regex rgx = new Regex(pattern);
         string result = rgx.Replace(input, replacement);

         Console.WriteLine("Original String: {0}", input);
         Console.WriteLine("Replacement String: {0}", result);    
         Console.ReadKey();
      }
   }
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

Original String: Hello World   
Replacement String: Hello World