(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

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.

  NameBeschreibung
Geschützte MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsRegex()Initialisiert eine neue Instanz der Regex-Klasse.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsRegex(String)Initialisiert eine neue Instanz der Regex-Klasse für den angegebenen regulären Ausdruck.
Geschützte MethodeRegex(SerializationInfo, StreamingContext)Initialisiert eine neue Instanz der Regex-Klasse mithilfe von serialisierten Daten.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsRegex(String, RegexOptions)Initialisiert eine neue Instanz der Regex-Klasse für den angegebenen regulären Ausdruck mit Optionen zum Verändern des Musters.
Öffentliche MethodeUnterstützt in .NET für Windows Store-AppsRegex(String, RegexOptions, TimeSpan)Initialisiert eine neue Instanz der Regex-Klasse für den angegebenen regulären Ausdruck mit Optionen, die das Muster und einen Wert ändern, der angibt, wie lange eine Mustervergleichsmethode versuchen sollte, eine Übereinstimmung zu finden, bevor das Zeitlimit erreicht wird.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftStatischer MemberCacheSizeRuft die maximale Anzahl von Einträgen im aktuellen statischen Cache für die kompilierten regulären Ausdrücke ab oder legt diese fest.
Öffentliche EigenschaftUnterstützt in .NET für Windows Store-AppsMatchTimeoutRuft den Laufzeitintervall der aktuellen Instanz ab.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsOptionsRuft die Optionen ab, die an den Regex-Konstruktor übergeben wurden.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsRightToLeftRuft einen Wert ab, der angibt, ob der reguläre Ausdruck von rechts nach links sucht.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeStatischer MemberCompileToAssembly(RegexCompilationInfo[], AssemblyName)Kompiliert ein oder mehrere angegebene Regex-Objekte in eine benannte Assembly.
Öffentliche MethodeStatischer MemberCompileToAssembly(RegexCompilationInfo[], AssemblyName, CustomAttributeBuilder[])Kompiliert ein oder mehrere angegebene Regex-Objekte in eine benannte Assembly mit den angegebenen Attributen.
Öffentliche MethodeStatischer MemberCompileToAssembly(RegexCompilationInfo[], AssemblyName, CustomAttributeBuilder[], String)Kompiliert ein oder mehrere angegebene Regex-Objekte und eine angegebene Ressourcendatei in eine benannte Assembly mit den angegebenen Attributen.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsEscapeVersieht einen minimalen Satz an Zeichen (\, *, +, ?, |, {, [, (,), ^, $,., # und Leerzeichen) mit Escapezeichen, indem diese durch die jeweils entsprechende Escapesequenz ersetzt werden. Damit wird das Modul für reguläre Ausdrücke angewiesen, diese Zeichen als Literale statt als Metazeichen zu interpretieren.
Geschützte MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetGroupNamesGibt ein Array der Namen von Erfassungsgruppen für den regulären Ausdruck zurück.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetGroupNumbersGibt ein Array der Nummern von Erfassungsgruppen zurück, die den Gruppennamen in einem Array entsprechen.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGroupNameFromNumberRuft den Gruppennamen ab, der der angegebenen Gruppennummer entspricht.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGroupNumberFromNameGibt die Gruppennummer zurück, die dem angegebenen Gruppennamen entspricht.
Geschützte MethodeInitializeReferencesInfrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIsMatch(String)Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck eine Übereinstimmung in einer angegebenen Eingabezeichenfolge findet.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIsMatch(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 MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIsMatch(String, String)Gibt an, ob der reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIsMatch(String, String, RegexOptions)Gibt an, ob der angegebene reguläre Ausdruck unter Verwendung der angegebenen Übereinstimmungsoptionen eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet.
Öffentliche MethodeStatischer MemberUnterstützt in .NET für Windows Store-AppsIsMatch(String, String, RegexOptions, TimeSpan)Gibt an, ob der angegebene reguläre Ausdruck unter Verwendung der angegebenen Übereinstimmungsoptionen eine Übereinstimmung in der angegebenen Eingabezeichenfolge und dem Timeout-Intervall findet.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsMatch(String)Durchsucht die angegebene Eingabezeichenfolge nach dem ersten Vorkommen des im Regex-Konstruktor angegebenen regulären Ausdrucks.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsMatch(String, Int32)Durchsucht die Eingabezeichenfolge nach dem ersten Vorkommen eines regulären Ausdrucks ab der angegebenen Anfangsposition in der Zeichenfolge.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsMatch(String, String)Durchsucht die angegebene Eingabezeichenfolge nach dem ersten Vorkommen des angegebenen regulären Ausdrucks.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsMatch(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 MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsMatch(String, String, RegexOptions)Durchsucht die angegebene Eingabezeichenfolge unter Verwendung der angegebenen Übereinstimmungsoptionen nach dem ersten Vorkommen des angegebenen regulären Ausdrucks.
Öffentliche MethodeStatischer MemberUnterstützt in .NET für Windows Store-AppsMatch(String, String, RegexOptions, TimeSpan)Durchsucht die angegebene Eingabezeichenfolge unter Verwendung der angegebenen Übereinstimmungsoptionen und Timeoutintervalls nach dem ersten Vorkommen des angegebenen regulären Ausdrucks.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsMatches(String)Durchsucht die angegebene Eingabezeichenfolge nach allen Vorkommen eines regulären Ausdrucks.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsMatches(String, Int32)Durchsucht die angegebene Eingabezeichenfolge nach allen Vorkommen eines regulären Ausdrucks ab der angegebenen Anfangsposition in der Zeichenfolge.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsMatches(String, String)Durchsucht die angegebene Eingabezeichenfolge nach allen Vorkommen eines angegebenen regulären Ausdrucks.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsMatches(String, String, RegexOptions)Durchsucht die angegebene Eingabezeichenfolge unter Verwendung der angegebenen Übereinstimmungsoptionen nach allen Vorkommen des angegebenen regulären Ausdrucks.
Öffentliche MethodeStatischer MemberUnterstützt in .NET für Windows Store-AppsMatches(String, String, RegexOptions, TimeSpan)Durchsucht die angegebene Eingabezeichenfolge unter Verwendung der angegebenen Übereinstimmungsoptionen und Timeoutintervalls nach allen Vorkommen des angegebenen regulären Ausdrucks.
Geschützte MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReplace(String, String)Ersetzt in einer angegebenen Eingabezeichenfolge alle mit dem Muster für den regulären Ausdruck übereinstimmenden Zeichenfolgen durch eine angegebene Ersetzungszeichenfolge.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReplace(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 MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReplace(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 MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReplace(String, String, String)Ersetzt in einer angegebenen Eingabezeichenfolge alle mit einem angegebenen regulären Ausdruck übereinstimmenden Zeichenfolgen durch eine angegebene Ersetzungszeichenfolge.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReplace(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 MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReplace(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 MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReplace(String, String, Int32, Int32)Ersetzt in einer angegebenen Eingabeteilzeichenfolge eine angegebene Höchstanzahl von Zeichenfolgen, die mit dem Muster eines regulären Ausdrucks übereinstimmen, durch eine angegebene Ersetzungszeichenfolge.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReplace(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 MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReplace(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 MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReplace(String, MatchEvaluator, Int32, Int32)Ersetzt in einer angegebenen Eingabeteilzeichenfolge 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 MethodeStatischer MemberUnterstützt in .NET für Windows Store-AppsReplace(String, String, String, RegexOptions, TimeSpan)Ersetzt in einer angegebenen Eingabezeichenfolge alle mit einem angegebenen regulären Ausdruck übereinstimmenden Zeichenfolgen durch eine angegebene Ersetzungszeichenfolge. Zusätzliche Parameter geben die Optionen an, die den entsprechenden Vorgang und ein Timeoutintervall ändern, wenn keine Übereinstimmung gefunden wird.
Öffentliche MethodeStatischer MemberUnterstützt in .NET für Windows Store-AppsReplace(String, String, MatchEvaluator, RegexOptions, TimeSpan)Ersetzt in einer angegebenen Eingabezeichenfolge alle Teilzeichnfolgen mit einem angegebenen regulären Ausdruck übereinstimmenden Zeichenfolgen durch eine von einem MatchEvaluator-Delegaten zurückgegebene Zeichenfolge. Zusätzliche Parameter geben die Optionen an, die den entsprechenden Vorgang und ein Timeoutintervall ändern, wenn keine Übereinstimmung gefunden wird.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsSplit(String)Teilt die angegebene Eingabezeichenfolge an den Positionen in ein Array von Teilzeichenfolgen auf, die durch ein im Regex-Konstruktor angegebenes Muster für einen regulären Ausdruck definiert werden.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsSplit(String, Int32)Teilt die angegebene Eingabezeichenfolge höchstens die angegebene Anzahl von Malen an den Positionen in ein Array von Teilzeichenfolgenketten auf, die durch einen im Regex-Konstruktor angegebenen regulären Ausdruck definiert werden.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsSplit(String, String)Teilt eine Eingabezeichenfolge an den durch ein reguläres Ausdrucksmuster definierte Positionen in ein Array von Teilzeichenfolgen auf.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsSplit(String, Int32, Int32)Teilt die angegebene Eingabezeichenfolge höchstens die angegebene Anzahl von Malen an den Positionen in ein Array von Teilzeichenfolgenketten 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 MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsSplit(String, String, RegexOptions)Teilt eine Eingabezeichenfolge an den durch ein angegebenes reguläres Ausdrucksmuster definierte Positionen in ein Array von Teilzeichenfolgen auf. Durch angegebene Optionen wird die Suche nach Übereinstimmungen geändert.
Öffentliche MethodeStatischer MemberUnterstützt in .NET für Windows Store-AppsSplit(String, String, RegexOptions, TimeSpan)Teilt eine Eingabezeichenfolge an den durch ein angegebenes reguläres Ausdrucksmuster definierte Positionen in ein Array von Teilzeichenfolgen auf. Zusätzliche Parameter geben die Optionen an, die den entsprechenden Vorgang und ein Timeoutintervall ändern, wenn keine Übereinstimmung gefunden wird.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToStringGibt das Muster eines regulären Ausdrucks zurück, das an den Regex-Konstruktor übergeben wurde. (Überschreibt Object.ToString().)
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsUnescapeKonvertiert alle Escapezeichen in der Eingabezeichenfolge.
Geschützte MethodeUnterstützt von XNA FrameworkUseOptionCInfrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Geschützte MethodeUnterstützt von XNA FrameworkUseOptionRInfrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Geschützte MethodeStatischer MemberValidateMatchTimeoutInfrastruktur. Überprüft, ob ein Timeoutintervall innerhalb eines akzeptablen Bereichs liegt.
Zum Seitenanfang

  NameBeschreibung
Geschütztes FeldUnterstützt von XNA FrameworkcapnamesInfrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Geschütztes FeldUnterstützt von XNA FrameworkcapsInfrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Geschütztes FeldUnterstützt von XNA FrameworkcapsizeInfrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Geschütztes FeldUnterstützt von XNA FrameworkcapslistInfrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Geschütztes FeldfactoryInfrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Öffentliches FeldStatischer MemberUnterstützt in .NET für Windows Store-AppsInfiniteMatchTimeoutGibt an, dass bei einem Mustervergleichsvorgang kein Timeout angewendet werden sollte.
Geschütztes FeldinternalMatchTimeoutInfrastruktur. Die maximale Zeit, die ein Mustervergleichsvorgang ausgeführt werden kann, bevor des Timeout eintritt.
Geschütztes FeldUnterstützt von XNA FrameworkpatternInfrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Geschütztes FeldUnterstützt von XNA FrameworkroptionsInfrastruktur. Wird von einem durch die CompileToAssembly-Methode generierten Regex-Objekt verwendet.
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate MethodeISerializable.GetObjectDataInfrastruktur. 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. Sie kann verwendet werden, um große Textmengen schnell zu analysieren, bestimmte Zeichenmuster zu finden, Text-Teilzeichenfolgen zu extrahieren, bearbeiten, ersetzen oder löschen; und die extrahierten Zeichenfolgen einer Auflistung hinzufügen, um einen Bericht zu generieren.

HinweisHinweis

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 – Kurzübersicht dokumentierten Syntax identifizieren möchten. Danach können Sie optional ein Regex-Objekt instanziieren. Schließlich können Sie eine Methode aufrufen, die einen Vorgang ausführt, wie das Ersetzen von Text, der mit dem Muster eines regulären Ausdrucks übereinstimmt oder das Identifizieren einer Musterübereinstimmung.

Regex-Methode oder String-Methode

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.

Zurück zu "Hinweise"

Statische Methode oder Instanzmethode

Nachdem Sie ein Muster für reguläre Ausdrücke definieren, können Sie es dem Modul für reguläre Ausdrücke kann auf zwei verschiedene Arten bereitstellen:

  • 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 HinweisWichtig

In den Versionen 1.0 und 1.1 .NET Framework 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.

Zwischenspeicherung kann jedoch das Zwischenspeichern Leistung in den folgenden zwei Fällen beeinträchtigen:

  • 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 erhöhen.

  • Wenn Sie neue Regex-Objekte mit regulären Ausdrücken instantiieren, die zuvor kompiliert wurden. Der folgende Code definiert beispielsweise einen regulären Ausdruck, um doppelte Wörter in einem Textstream 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 erneut zu verhindern, sollten Sie ein einzelnes Regex-Objekt instanziieren das sämtlichem Code der diese benötigt, wie im folgenden Beispiel gezeigt umgeschriebenen zugänglich ist.

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

Zurück zu "Hinweise"

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. Das .NET Framework enthält Beispiele für diese zweckgebundenen Assemblys im System.Web.RegularExpressions-Namespace.

Zurück zu "Hinweise"

Definieren eines Timeoutwerts

Das .NET Framework unterstütz reguläre Ausdrücke durch eine umfangreiche Sprache, die leistungsstark ist und flexible Mustervergleiche ermöglicht. Allerdings gibt es diese Leistungsfähigkeit und Flexibilität nicht ohne Einschränkung: das Risiko schlechter Performance. Reguläre Ausdrücke mit langer Laufzeit sind überraschend einfach zu erstellen. In einigen Fällen können Vorgänge für reguläre Ausdrücke, die auf übermäßigem Backtracking beruhen, scheinbar nicht mehr reagiert, wenn sie Text verarbeiten, der fast mit dem Muster eines regulären Ausdrucks übereinstimmt. Weitere Informationen zum .NET Framework für reguläre Ausdrücke, finden Sie unter Einzelheiten zum Verhalten regulärer Ausdrücke. Weitere Informationen zu übermäßigem Backtracking finden Sie unter Backtracking.

Ab .NET Framework 4.5, können Sie ein Timeoutintervall für Übereinstimmungen mit regulären Ausdrücken definieren. Wenn das Modul für reguläre Ausdrücke eine Übereinstimmung innerhalb dieses Zeitraums nicht identifizieren kann, löst der entsprechende Operation eine RegexMatchTimeoutException Ausnahme aus. In den meisten Fällen verhindert das, dass das Modul für reguläre Ausdrücke Rechenleistung verschwendet, indem versucht, Text entspricht, der fast mit dem Muster eines regulären Ausdrucks übereinstimmt. Es kann außerdem angeben jedoch dass das Timeoutintervall zu niedrig festgelegt wurde oder dass die aktuelle Maschinenbelastung eine Gesamtverringerung in der Leistung verursacht hat.

Wie Sie behandeln, hängt die Ausnahme von der Ursache der Ausnahme. Wenn die Ausnahme auftritt, da das Timeoutintervall zu gering oder auf eine übermäßige Maschinenbelastung festgelegt ist, können Sie das Timeoutintervall erhöhen und den entsprechenden Vorgang erneut versuchen. Wenn die Ausnahme auftritt, da der reguläre Ausdruck auf eine übermäßige Rückverfolgung benötigt, können Sie davon ausgehen, dass eine Übereinstimmung nicht vorhanden ist, und optional können Protokollieren von Informationen, die Ihnen helfen, das Muster eines regulären Ausdrucks zu ändern.

Sie können ein Timeoutintervall festlegen, indem Sie den Regex(String, RegexOptions, TimeSpan) konstruktor aufrufen, wenn Sie ein Objekt für reguläre Ausdrücke instanziiert. Bei statischen Methoden Sie können ein Timeoutintervall festlegen, indem Sie eine Überladung einer entsprechenden Methode aufrufen, die einen matchTimeout-Parameter verfügt. Wenn kein Timeoutwert explizit festlegen, wird der Standardtimeoutwert bestimmt, wie folgt:

  • Durch Verwendung des anwendungsweiten Timeoutwerts, wenn vorhanden. Dies kann jeder Timeoutwert handeln, der auf die Anwendungsdomäne angewendet, in der das Regex-Objekt instanziiert wird, oder den statischen Methodenaufruf erfolgt. Sie können den Timeoutwert anwendungsweiten festlegen, indem Sie die AppDomain.SetData-Methode aufrufen, um die Zeichenfolgendarstellung eines Werts an die TimeSpan "REGEX_DEFAULT_MATCH_TIMEOUT-" Eigenschaft zuzuweisen.

  • Durch Verwendung des Werts InfiniteMatchTimeout, wenn kein Timeoutwert anwendungsweiter festgelegt wurde.

Wichtiger HinweisWichtig

Es wird empfohlen dass Sie einen Timeoutwert in allen Mustervergleichsvorgängen des regulären Ausdrucks. Weitere Informationen finden Sie unter Empfohlene Vorgehensweisen für die Verwendung von regulären Ausdrücken in .NET Framework.

Zurück zu "Hinweise"

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

Beschreibung

\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

Beschreibung

^

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?

Übereinstimmung mit keinem oder einem Leerzeichen.

\$?

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

\s?

Übereinstimmung mit keinem oder einem Leerzeichen.

\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.

$

Das Ende der Zeichenfolge soll übereinstimmen.

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.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.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.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft