Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
1 von 1 fanden dies hilfreich - Dieses Thema bewerten.

Regex-Klasse

Stellt einen unveränderlichen regulären Ausdruck dar.

System.Object
  System.Text.RegularExpressions.Regex
    Weitere Informationen...

Namespace:  System.Text.RegularExpressions
Assembly:  System (in System.dll)
[SerializableAttribute]
public class Regex : ISerializable

Der Regex-Typ macht die folgenden Member verfügbar.

  Name Beschreibung
Geschützte Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Regex() Initialisiert eine neue Instanz der Regex-Klasse.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Regex(String) Initialisiert und kompiliert eine neue Instanz der Regex-Klasse für den angegebenen regulären Ausdruck.
Geschützte Methode Regex(SerializationInfo, StreamingContext) Initialisiert eine neue Instanz der Regex-Klasse mithilfe von serialisierten Daten.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Regex(String, RegexOptions) Initialisiert und kompiliert eine neue Instanz der Regex-Klasse für den angegebenen regulären Ausdruck mit Optionen zum Verändern des Musters.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Eigenschaft Statischer Member CacheSize Ruft die maximale Anzahl von Einträgen im aktuellen statischen Cache für die kompilierten regulären Ausdrücke ab oder legt diese fest.
Öffentliche Eigenschaft Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Options Gibt die an den Regex-Konstruktor übergebenen Optionen zurück.
Öffentliche Eigenschaft Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif RightToLeft Ruft einen Wert ab, der angibt, ob der reguläre Ausdruck von rechts nach links sucht.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Methode Statischer Member CompileToAssembly(RegexCompilationInfo[], AssemblyName) Kompiliert ein oder mehrere angegebene Regex-Objekte in eine benannte Assembly.
Öffentliche Methode Statischer Member CompileToAssembly(RegexCompilationInfo[], AssemblyName, CustomAttributeBuilder[]) Kompiliert ein oder mehrere angegebene Regex-Objekte in eine benannte Assembly mit den angegebenen Attributen.
Öffentliche Methode Statischer Member CompileToAssembly(RegexCompilationInfo[], AssemblyName, CustomAttributeBuilder[], String) Kompiliert ein oder mehrere angegebene Regex-Objekte und eine angegebene Ressourcendatei in eine benannte Assembly mit den angegebenen Attributen.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Equals(Object) Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Öffentliche Methode Statischer Member Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Escape Versieht einen minimalen Satz von Zeichen (\, *, +, ?, |, {, [, (,), ^, $,., # und Leerraum) mit Escapezeichen, indem diese durch die jeweils entsprechende Escapesequenz ersetzt werden. So wird das Modul für reguläre Ausdrücke angewiesen, diese Zeichen wörtlich zu interpretieren und nicht als Metazeichen.
Geschützte Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Finalize Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.)
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif GetGroupNames Gibt ein Array der Namen von Erfassungsgruppen für den regulären Ausdruck zurück.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif GetGroupNumbers Gibt ein Array der Nummern von Erfassungsgruppen zurück, die den Gruppennamen in einem Array entsprechen.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif GetHashCode Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif GroupNameFromNumber Ruft den Gruppennamen ab, der der angegebenen Gruppennummer entspricht.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif GroupNumberFromName Gibt die Gruppennummer zurück, die dem angegebenen Gruppennamen entspricht.
Geschützte Methode InitializeReferences Infrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif IsMatch(String) Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck eine Übereinstimmung in einer angegebenen Eingabezeichenfolge findet.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif IsMatch(String, Int32) Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck ab der angegebenen Anfangsposition eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif IsMatch(String, String) Gibt an, ob der reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif IsMatch(String, String, RegexOptions) Gibt an, ob der angegebene reguläre Ausdruck unter Verwendung der angegebenen Übereinstimmungsoptionen eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Match(String) Durchsucht die angegebene Eingabezeichenfolge nach dem ersten Vorkommen des im Regex-Konstruktor angegebenen regulären Ausdrucks.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Match(String, Int32) Durchsucht die Eingabezeichenfolge nach dem ersten Vorkommen eines regulären Ausdrucks ab der angegebenen Anfangsposition in der Zeichenfolge.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Match(String, String) Durchsucht die angegebene Eingabezeichenfolge nach dem ersten Vorkommen des angegebenen regulären Ausdrucks.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Match(String, Int32, Int32) Sucht beginnend an der angegebenen Anfangsposition in der Eingabezeichenfolge nach dem ersten Vorkommen eines regulären Ausdrucks und sucht nur nach der angegebenen Anzahl von Zeichen.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Match(String, String, RegexOptions) Durchsucht die angegebene Eingabezeichenfolge unter Verwendung der angegebenen Übereinstimmungsoptionen nach dem ersten Vorkommen des angegebenen regulären Ausdrucks.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Matches(String) Durchsucht die angegebene Eingabezeichenfolge nach allen Vorkommen eines regulären Ausdrucks.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Matches(String, Int32) Durchsucht die angegebene Eingabezeichenfolge nach allen Vorkommen eines regulären Ausdrucks ab der angegebenen Anfangsposition in der Zeichenfolge.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Matches(String, String) Durchsucht die angegebene Eingabezeichenfolge nach allen Vorkommen eines angegebenen regulären Ausdrucks.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Matches(String, String, RegexOptions) Durchsucht die angegebene Eingabezeichenfolge unter Verwendung der angegebenen Übereinstimmungsoptionen nach allen Vorkommen des angegebenen regulären Ausdrucks.
Geschützte Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Replace(String, String) Ersetzt in einer angegebenen Eingabezeichenfolge alle mit dem Muster für den regulären Ausdruck übereinstimmenden Zeichenfolgen durch eine angegebene Ersetzungszeichenfolge.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Replace(String, MatchEvaluator) Ersetzt in einer angegebenen Eingabezeichenfolge alle mit einem angegebenen regulären Ausdruck übereinstimmenden Zeichenfolgen durch eine von einem MatchEvaluator-Delegaten zurückgegebene Zeichenfolge.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Replace(String, String, Int32) Ersetzt in einer angegebenen Eingabezeichenfolge eine angegebene Höchstanzahl von Zeichenfolgen, die mit dem Muster eines regulären Ausdrucks übereinstimmen, durch eine angegebene Ersetzungszeichenfolge.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Replace(String, String, String) Ersetzt in einer angegebenen Eingabezeichenfolge alle mit einem angegebenen regulären Ausdruck übereinstimmenden Zeichenfolgen durch eine angegebene Ersetzungszeichenfolge.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Replace(String, String, MatchEvaluator) Ersetzt in einer angegebenen Eingabezeichenfolge alle mit einem angegebenen regulären Ausdruck übereinstimmenden Zeichenfolgen durch eine von einem MatchEvaluator-Delegaten zurückgegebene Zeichenfolge.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Replace(String, MatchEvaluator, Int32) Ersetzt in einer angegebenen Eingabezeichenfolge eine angegebene Höchstanzahl von Zeichenfolgen, die mit dem Muster eines regulären Ausdrucks übereinstimmen, durch eine von einem MatchEvaluator-Delegaten zurückgegebene Zeichenfolge.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Replace(String, String, Int32, Int32) Ersetzt in einer angegebenen untergeordneten Eingabezeichenfolge eine angegebene Höchstanzahl von Zeichenfolgen, die mit dem Muster eines regulären Ausdrucks übereinstimmen, durch eine angegebene Ersetzungszeichenfolge.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Replace(String, String, String, RegexOptions) Ersetzt in einer angegebenen Eingabezeichenfolge alle mit einem angegebenen regulären Ausdruck übereinstimmenden Zeichenfolgen durch eine angegebene Ersetzungszeichenfolge. Durch angegebene Optionen wird die Suche nach Übereinstimmungen geändert.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Replace(String, String, MatchEvaluator, RegexOptions) Ersetzt in einer angegebenen Eingabezeichenfolge alle mit einem angegebenen regulären Ausdruck übereinstimmenden Zeichenfolgen durch eine von einem MatchEvaluator-Delegaten zurückgegebene Zeichenfolge. Durch angegebene Optionen wird die Suche nach Übereinstimmungen geändert.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Replace(String, MatchEvaluator, Int32, Int32) Ersetzt in einer angegebenen untergeordneten Eingabezeichenfolge eine angegebene Höchstanzahl von Zeichenfolgen, die mit dem Muster eines regulären Ausdrucks übereinstimmen, durch eine von einem MatchEvaluator-Delegaten zurückgegebene Zeichenfolge.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Split(String) Teilt die angegebene Eingabezeichenfolge an den Positionen auf, die durch ein im Regex-Konstruktor angegebenes Muster für einen regulären Ausdruck definiert werden.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Split(String, Int32) Teilt die angegebene Eingabezeichenfolge höchstens die angegebene Anzahl von Malen an den Positionen auf, die durch einen im Regex-Konstruktor angegebenen regulären Ausdruck definiert werden.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Split(String, String) Teilt die Eingabezeichenfolge an den Positionen auf, die durch das Muster eines regulären Ausdrucks definiert werden.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Split(String, Int32, Int32) Teilt die angegebene Eingabezeichenfolge höchstens die angegebene Anzahl von Malen an den Positionen auf, die durch einen im Regex-Konstruktor angegebenen regulären Ausdruck definiert werden. Die Suche nach dem Muster des regulären Ausdrucks beginnt bei einer angegebenen Zeichenposition in der Eingabezeichenfolge.
Öffentliche Methode Statischer Member Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Split(String, String, RegexOptions) Teilt die Eingabezeichenfolge an den Positionen auf, die durch das angegebene Muster eines regulären Ausdrucks definiert werden. Durch angegebene Optionen wird die Suche nach Übereinstimmungen geändert.
Öffentliche Methode Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif ToString Gibt das Muster eines regulären Ausdrucks zurück, das an den Regex-Konstruktor übergeben wurde. (Überschreibt Object.ToString().)
Öffentliche Methode Statischer Member Unterstützt von XNA Framework 6f7hht7k.PortableClassLibrary(de-de,VS.100).gif Unescape Konvertiert alle Escapezeichen in der Eingabezeichenfolge.
Geschützte Methode Unterstützt von XNA Framework UseOptionC Infrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Geschützte Methode Unterstützt von XNA Framework UseOptionR Infrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Zum Seitenanfang
  Name Beschreibung
Geschütztes Feld Unterstützt von XNA Framework capnames Infrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Geschütztes Feld Unterstützt von XNA Framework caps Infrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Geschütztes Feld Unterstützt von XNA Framework capsize Infrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Geschütztes Feld Unterstützt von XNA Framework capslist Infrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Geschütztes Feld factory Infrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Geschütztes Feld Unterstützt von XNA Framework pattern Infrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Geschütztes Feld Unterstützt von XNA Framework roptions Infrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Zum Seitenanfang
  Name Beschreibung
Explizite Schnittstellenimplementierung Private Methode ISerializable.GetObjectData Infrastruktur. Füllt ein SerializationInfo-Objekt mit den Daten, die erforderlich sind, um das aktuelle Regex-Objekt zu deserialisieren.
Zum Seitenanfang

Die Regex-Klasse stellt das .NET Framework-Modul für reguläre Ausdrücke dar. Hiermit können Sie schnell große Textmengen zum Suchen von bestimmten Zeichenmustern analysieren, untergeordnete Textzeichenfolgen extrahieren, bearbeiten, ersetzen oder löschen und die extrahierten Zeichenfolgen einer Auflistung hinzufügen, um einen Bericht zu erstellen.

Hinweis Hinweis

Wenn Sie in erster Linie prüfen möchten, ob eine Zeichenfolge einem bestimmten Muster entspricht, können Sie die System.Configuration.RegexStringValidator-Klasse verwenden.

Um reguläre Ausdrücke zu verwenden, definieren Sie das Muster, das Sie in einem Textstream mit der in Sprachelemente für reguläre Ausdrücke dokumentierten Syntax identifizieren möchten. Danach können Sie optional ein Regex-Objekt instanziieren. Schließlich führen Sie einen beliebigen Vorgang aus, z. B. das Ersetzen von Text, der mit dem Muster eines regulären Ausdrucks übereinstimmt, oder das Identifizieren einer Musterübereinstimmung.

Regex oderZeichenfolgenmethoden

Die System.String-Klasse beinhaltet mehrere Such- und Vergleichsmethoden, mit denen Sie Mustervergleiche mit Text ausführen können. Die Methoden String.Contains, String.EndsWith und String.StartsWith bestimmen z. B., ob eine Zeichenfolgeninstanz eine angegebene Teilzeichenfolge enthält, während die Methoden String.IndexOf, String.IndexOfAny, String.LastIndexOf und String.LastIndexOfAny die Anfangsposition einer angegebenen Teilzeichenfolge in einer Zeichenfolge zurückgeben. Verwenden Sie die Methoden der System.String-Klasse, wenn Sie nach einer bestimmten Zeichenfolge suchen. Verwenden Sie die Regex-Klasse, wenn Sie in einer Zeichenfolge nach einem bestimmten Muster suchen. Weitere Informationen und Beispiele finden Sie unter Reguläre Ausdrücke von .NET Framework.

Static oderInstanzmethoden

Wenn Sie ein Muster für einen regulären Ausdruck definiert haben, gibt es zwei Möglichkeiten, dieses Muster dem Modul für reguläre Ausdrücke bereitzustellen.

  • Durch das Instanziieren eines Regex-Objekts, das den regulären Ausdruck darstellt. Hierzu übergeben Sie das Muster für den regulären Ausdruck an einen Regex-Konstruktor. Ein Regex-Objekt ist unveränderlich. Wenn Sie ein Regex-Objekt mit einem regulären Ausdruck instanziieren, kann der reguläre Ausdruck dieses Objekts nicht geändert werden.

  • Durch das Angeben des regulären Ausdrucks und des Suchtexts in einer static (Shared in Visual Basic) Regex-Methode. Dann können Sie einen regulären Ausdruck verwenden, ohne explizit ein Regex-Objekt zu erstellen.

Alle Regex-Musteridentifikationsmethoden beinhalten statische Überladungen und Instanzüberladungen.

Das Modul für reguläre Ausdrücke muss ein Muster kompilieren, bevor das betreffende Muster verwendet werden kann. Da Regex-Objekte unveränderlich sind, ist dies eine einmalige Prozedur, die auftritt, wenn ein Regex-Klassenkonstruktor oder eine statische Methode aufgerufen wird. Damit ein einzelner regulärer Ausdruck nicht immer wieder kompiliert werden muss, speichert das Modul für reguläre Ausdrücke die in statischen Methodenaufrufen verwendeten kompilierten regulären Ausdrücke zwischen. Dadurch bieten Mustervergleichsmethoden für reguläre Ausdrücke bei der statischen Methode und der Instanzmethode ungefähr die gleiche Leistung.

Wichtiger Hinweis Wichtig

In .NET Framework, Versionen 1.0 und 1.1, wurden alle kompilierten regulären Ausdrücke in Instanz- oder statischen Methodenaufrufen zwischengespeichert. Ab .NET Framework 2.0 werden nur reguläre Ausdrücke zwischengespeichert, die in statischen Methodenaufrufen verwendet werden.

Das vom Modul für reguläre Ausdrücke implementierte System der Zwischenspeicherung kann sich in den folgenden zwei Fällen jedoch negativ auf die Leistung auswirken:

  • Wenn Sie statische Methodenaufrufe mit einer großen Anzahl regulärer Ausdrücke verwenden. Standardmäßig werden vom Modul für reguläre Ausdrücke die 15 zuletzt verwendeten statischen regulären Ausdrücke zwischengespeichert. Wenn die Anwendung mehr als 15 statische reguläre Ausdrücke verwendet, müssen einige reguläre Ausdrücke neu kompiliert werden. Um diese Neukompilierung zu verhindern, können Sie die Regex.CacheSize-Eigenschaft auf einen entsprechenden Wert erhöhen.

  • Wenn die Anwendung neue Regex-Objekte mit regulären Ausdrücken instanziiert, die bereits kompiliert wurden. Im folgenden Code wird z. B. ein regulärer Ausdruck definiert, um doppelte Wörter in einzelnen Zeilen eines Textstreams zu suchen. Obwohl im Beispiel ein einzelner regulärer Ausdruck verwendet wird, instanziiert es ein neues Regex-Objekt, um jede Textzeile zu verarbeiten. Dies führt bei jeder Iteration der Schleife zur Neukompilierung des regulären Ausdrucks.

    
    StreamReader sr = new StreamReader(filename);
    string input;
    string pattern = @"\b(\w+)\s\1\b";
    while (sr.Peek() >= 0)
    {
       input = sr.ReadLine();
       Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
       MatchCollection matches = rgx.Matches(input);
       if (matches.Count > 0)
       {
          Console.WriteLine("{0} ({1} matches):", input, matches.Count);
          foreach (Match match in matches)
             Console.WriteLine("   " + match.Value);
       }
    }
    sr.Close();   
    
    
    

    Um die Neukompilierung zu verhindern, sollte die Anwendung ein einzelnes Regex-Objekt instanziieren, auf das jeder Code bei Bedarf zugreifen kann, wie im Folgenden umgeschriebenen Beispiel gezeigt.

    
    StreamReader sr = new StreamReader(filename);
    string input;
    string pattern = @"\b(\w+)\s\1\b";
    Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
    
    while (sr.Peek() >= 0)
    {
       input = sr.ReadLine();
       MatchCollection matches = rgx.Matches(input);
       if (matches.Count > 0)
       {
          Console.WriteLine("{0} ({1} matches):", input, matches.Count);
          foreach (Match match in matches)
             Console.WriteLine("   " + match.Value);
       }
    }
    sr.Close();   
    
    
    

Ausführen von Vorgängen mit regulären Ausdrücken

Wenn Sie ein Regex-Objekt instanziieren und seine Methoden aufrufen oder statische Methoden aufrufen möchten, bietet die Regex-Klasse die folgende Mustervergleichsfunktionalität an:

  • Validierung einer Übereinstimmung. Sie rufen die IsMatch-Methode auf, um zu bestimmen, ob eine Übereinstimmung vorhanden ist.

  • Abruf einer einzelnen Übereinstimmung. Sie rufen die Match-Methode auf, um ein Match-Objekt abzurufen, das die erste Übereinstimmung in einer Zeichenfolge oder einem Teil einer Zeichenfolge darstellt. Nachfolgende Übereinstimmungen können durch Aufrufen der Match.NextMatch-Methode aufgerufen werden.

  • Abruf aller Übereinstimmungen. Sie rufen die Matches-Methode auf, um ein System.Text.RegularExpressions.MatchCollection-Objekt abzurufen, das alle in einer Zeichenfolge oder einem Teil einer Zeichenfolge gefundenen Übereinstimmungen darstellt.

  • Ersetzen des übereinstimmenden Texts. Sie rufen die Replace-Methode auf, um übereinstimmenden Text zu ersetzen. Der Ersetzungstext kann auch von einem regulären Ausdruck definiert werden. Darüber hinaus beinhalten einige der Replace-Methoden einen MatchEvaluator-Parameter, mit dem Sie den Ersetzungstext programmgesteuert definieren können.

  • Erstellung eines Zeichenfolgenarrays, das von Teilen einer Eingabezeichenfolge gebildet wird. Sie rufen die Split-Methode auf, um eine Eingabezeichenfolge an Positionen zu teilen, die vom regulären Ausdruck definiert werden.

Neben den Mustervergleichsmethoden beinhaltet die Regex-Klasse mehrere Methoden für besondere Zwecke:

  • Die Escape-Methode versieht alle Zeichen mit einem Escapezeichen, die in einem regulären Ausdruck oder einer Eingabezeichenfolge möglicherweise als reguläre Ausdrucksoperatoren interpretiert werden.

  • Die Unescape-Methode entfernt diese Escapezeichen.

  • Die CompileToAssembly-Methode erstellt eine Assembly, die vordefinierte reguläre Ausdrücke enthält. .NET Framework enthält Beispiele für diese zweckgebundenen Assemblys im System.Web.RegularExpressions-Namespace.

Im folgenden Beispiel wird ein regulärer Ausdruck verwendet, um wiederholte Vorkommen von Wörtern in einer Zeichenfolge zu suchen. Der reguläre Ausdruck \b(?<word>\w+)\s+(\k<word>)\b kann wie in der folgenden Tabelle dargestellt interpretiert werden.

Muster

Beschreibungen

\b

Die Übereinstimmung soll an einer Wortgrenze beginnen.

(?<word>\w+)

Es soll mindestens ein Wortzeichen bis zu einer Wortgrenze übereinstimmen. Nennen Sie diese Erfassungsgruppe word.

\s+

Mindestens ein Leerzeichen soll übereinstimmen.

(\k<word>)

Die Erfassungsgruppe namens word soll übereinstimmen.

\b

Entsprechung für eine Wortgrenze finden.


using System;
using System.Text.RegularExpressions;

public class Test
{

    public static void Main ()
    {

        // Define a regular expression for repeated words.
        Regex rx = new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b",
          RegexOptions.Compiled | RegexOptions.IgnoreCase);

        // Define a test string.        
        string text = "The the quick brown fox  fox jumped over the lazy dog dog.";

        // Find matches.
        MatchCollection matches = rx.Matches(text);

        // Report the number of matches found.
        Console.WriteLine("{0} matches found in:\n   {1}", 
                          matches.Count, 
                          text);

        // Report on each match.
        foreach (Match match in matches)
        {
            GroupCollection groups = match.Groups;
            Console.WriteLine("'{0}' repeated at positions {1} and {2}",  
                              groups["word"].Value, 
                              groups[0].Index, 
                              groups[1].Index);
        }

    }
	
}
// The example produces the following output to the console:
//       3 matches found in:
//          The the quick brown fox  fox jumped over the lazy dog dog.
//       'The' repeated at positions 0 and 4
//       'fox' repeated at positions 20 and 25
//       'dog' repeated at positions 50 and 54


Im folgenden Beispiel wird veranschaulicht, wie mit einem regulären Ausdruck überprüft wird, ob eine Zeichenfolge eine Währung darstellt oder das richtige Format zum Darstellen einer Währung aufweist. In diesem Fall wird der reguläre Ausdruck dynamisch aus den Eigenschaften NumberFormatInfo.CurrencyDecimalSeparator, CurrencyDecimalDigits, NumberFormatInfo.CurrencySymbol, NumberFormatInfo.NegativeSign und NumberFormatInfo.PositiveSign für die aktuelle Kultur des Benutzers erstellt. Wenn die aktuelle Kultur des Systems en-US ist, lautet der resultierende reguläre Ausdruck ^\s*[\+-]?\s?\$?\s?(\d*\.?\d{2}?){1}$. Dieser reguläre Ausdruck kann wie in der folgenden Tabelle dargestellt interpretiert werden.

Muster

Beschreibungen

^

Er soll am Anfang der Zeichenfolge beginnen.

\s*

Sucht nach 0 (null) oder mehr Leerzeichen.

[\+-]?

0 (null) oder ein Vorkommen des positiven oder negativen Vorzeichens sollen übereinstimmen.

\s?

0 (null) oder ein Leerzeichen sollen überstimmen.

\$?

0 (null) oder ein Vorkommen des Dollarzeichens sollen übereinstimmen.

\s?

0 (null) oder ein Leerzeichen sollen überstimmen.

\d*

0 (null) oder mehr Dezimalstellen sollen übereinstimmen.

\.?

0 (null) oder ein Dezimaltrennzeichensymbol sollen übereinstimmen.

\d{2}?

Zwei Dezimalstellen sollen null oder ein Mal übereinstimmen.

(\d*\.? \d{2}?){1}

Das Muster der ganzzahligen Ziffern und Bruchziffern, die mindestens einmal durch ein Dezimaltrennzeichensymbol getrennt sind, soll übereinstimmen.

$

Vergleichen Sie das Ende der Zeichenfolge.

In diesem Fall geht der reguläre Ausdruck davon aus, dass eine gültige Währungszeichenfolge keine Gruppentrennzeichensymbole enthält, und dass in der CurrencyDecimalDigits-Eigenschaft der aktuellen Kultur entweder keine Bruchziffern oder keine Anzahl von Bruchziffern definiert sind.


using System;
using System.Globalization;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      // Get the current NumberFormatInfo object to build the regular 
      // expression pattern dynamically.
      NumberFormatInfo nfi = NumberFormatInfo.CurrentInfo;

      // Define the regular expression pattern.
      string pattern; 
      pattern = @"^\s*[";
      // Get the positive and negative sign symbols.
      pattern += Regex.Escape(nfi.PositiveSign + nfi.NegativeSign) + @"]?\s?";
      // Get the currency symbol.
      pattern += Regex.Escape(nfi.CurrencySymbol) + @"?\s?";
      // Add integral digits to the pattern.
      pattern += @"(\d*";
      // Add the decimal separator.
      pattern += Regex.Escape(nfi.CurrencyDecimalSeparator) + "?";
      // Add the fractional digits.
      pattern += @"\d{";
      // Determine the number of fractional digits in currency values.
      pattern += nfi.CurrencyDecimalDigits.ToString() + "}?){1}$";

      Regex rgx = new Regex(pattern);

      // Define some test strings.
      string[] tests = { "-42", "19.99", "0.001", "100 USD", 
                         ".34", "0.34", "1,052.21", "$10.62", 
                         "+1.43", "-$0.23" };

      // Check each test string against the regular expression.
      foreach (string test in tests)
      {
         if (rgx.IsMatch(test))
            Console.WriteLine("{0} is a currency value.", test);
         else
            Console.WriteLine("{0} is not a currency value.", test);
      }
   }
}
// The example displays the following output:
//       -42 is a currency value.
//       19.99 is a currency value.
//       0.001 is not a currency value.
//       100 USD is not a currency value.
//       .34 is a currency value.
//       0.34 is a currency value.
//       1,052.21 is not a currency value.
//       $10.62 is a currency value.
//       +1.43 is a currency value.
//       -$0.23 is a currency value.


Da der reguläre Ausdruck in diesem Beispiel dynamisch erstellt wird, ist zur Entwurfszeit nicht klar, ob das Währungssymbol der aktuellen Kultur, das Dezimalzeichen oder das positive und negative Vorzeichen vom Modul für reguläre Ausdrücke als Sprachoperatoren für reguläre Ausdrücke fehlinterpretiert werden könnten. Um jede Fehlinterpretation auszuschließen, werden im Beispiel alle dynamisch generierten Zeichenfolgen an die Escape-Methode übergeben.

.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Unterstützt in:

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Die Regex-Klasse ist unveränderlich (schreibgeschützt) und threadsicher. Regex-Objekte können für jeden Thread erzeugt und von mehreren Threads gemeinsam verwendet werden. Weitere Informationen finden Sie unter Threadsicherheit.

Datum

Versionsgeschichte

Grund

Juni 2010

Muster eines regulären Ausdrucks wurde korrigiert, um Leerstellen zu behandeln.

Kundenfeedback.

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ