C # - Reguläre Ausdrücke

EIN regular expressionist ein Muster, das mit einem Eingabetext abgeglichen werden kann. Das .Net-Framework bietet eine Engine für reguläre Ausdrücke, die einen solchen Abgleich ermöglicht. Ein Muster besteht aus einem oder mehreren Zeichenliteralen, Operatoren oder Konstrukten.

Konstrukte zum Definieren regulärer Ausdrücke

Es gibt verschiedene Kategorien von Zeichen, Operatoren und Konstrukten, mit denen Sie reguläre Ausdrücke definieren können. Klicken Sie auf die folgenden Links, um diese Konstrukte zu finden.

  • Charakter entkommt

  • Zeichenklassen

  • Anchors

  • Konstrukte gruppieren

  • Quantifiers

  • Backreference-Konstrukte

  • Alternationskonstrukte

  • Substitutions

  • Verschiedene Konstrukte

Die Regex-Klasse

Die Regex-Klasse wird zur Darstellung eines regulären Ausdrucks verwendet. Es hat die folgenden häufig verwendeten Methoden -

Sr.Nr. Methoden & Beschreibung
1

public bool IsMatch(string input)

Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck eine Übereinstimmung in einer angegebenen Eingabezeichenfolge findet.

2

public bool IsMatch(string input, int startat)

Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet, beginnend an der angegebenen Startposition in der Zeichenfolge.

3

public static bool IsMatch(string input, string pattern)

Gibt an, ob der angegebene reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet.

4

public MatchCollection Matches(string input)

Durchsucht die angegebene Eingabezeichenfolge nach allen Vorkommen eines regulären Ausdrucks.

5

public string Replace(string input, string replacement)

Ersetzt in einer angegebenen Eingabezeichenfolge alle Zeichenfolgen, die einem Muster für reguläre Ausdrücke entsprechen, durch eine angegebene Ersatzzeichenfolge.

6

public string[] Split(string input)

Teilt eine Eingabezeichenfolge an den Positionen, die durch ein im Regex-Konstruktor angegebenes Muster für reguläre Ausdrücke definiert sind, in ein Array von Teilzeichenfolgen auf.

Die vollständige Liste der Methoden und Eigenschaften finden Sie in der Microsoft-Dokumentation zu C #.

Beispiel 1

Das folgende Beispiel stimmt mit Wörtern überein, die mit 'S' beginnen -

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();
      }
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

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

Beispiel 2

Das folgende Beispiel stimmt mit Wörtern überein, die mit 'm' beginnen und mit 'e' enden -

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();
      }
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

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

Beispiel 3

Dieses Beispiel ersetzt zusätzlichen Leerraum -

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();
      }
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

Original String: Hello World   
Replacement String: Hello World