Regex.Match Methode

Definition

Durchsucht eine Eingabezeichenfolge nach einer Teilzeichenfolge, die einem Muster für reguläre Ausdrücke entspricht, und gibt das erste Vorkommen als einzelnes Match Objekt zurück.

Überlädt

Name Beschreibung
Match(String)

Durchsucht die angegebene Eingabezeichenfolge nach dem ersten Vorkommen des im Regex Konstruktor angegebenen regulären Ausdrucks.

Match(String, Int32)

Durchsucht die Eingabezeichenfolge nach dem ersten Vorkommen eines regulären Ausdrucks, beginnend mit der angegebenen Anfangsposition in der Zeichenfolge.

Match(String, String)

Durchsucht die angegebene Eingabezeichenfolge nach dem ersten Vorkommen des angegebenen regulären Ausdrucks.

Match(String, Int32, Int32)

Durchsucht die Eingabezeichenfolge nach dem ersten Vorkommen eines regulären Ausdrucks, beginnend mit der angegebenen Anfangsposition und nur die angegebene Anzahl von Zeichen.

Match(String, String, RegexOptions)

Durchsucht die Eingabezeichenfolge nach dem ersten Vorkommen des angegebenen regulären Ausdrucks mithilfe der angegebenen Abgleichsoptionen.

Match(String, String, RegexOptions, TimeSpan)

Durchsucht die Eingabezeichenfolge nach dem ersten Vorkommen des angegebenen regulären Ausdrucks unter Verwendung der angegebenen Abgleichsoptionen und des Timeoutintervalls.

Match(String)

Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs

Durchsucht die angegebene Eingabezeichenfolge nach dem ersten Vorkommen des im Regex Konstruktor angegebenen regulären Ausdrucks.

public:
 System::Text::RegularExpressions::Match ^ Match(System::String ^ input);
public System.Text.RegularExpressions.Match Match(string input);
member this.Match : string -> System.Text.RegularExpressions.Match
Public Function Match (input As String) As Match

Parameter

input
String

Die Zeichenfolge, die nach einer Übereinstimmung gesucht werden soll.

Gibt zurück

Ein Objekt, das Informationen zur Übereinstimmung enthält.

Ausnahmen

input ist null.

Ein Timeout ist aufgetreten.

Hinweise

Die Match(String) Methode gibt die erste Teilzeichenfolge zurück, die einem Muster für reguläre Ausdrücke in einer Eingabezeichenfolge entspricht.

Sie können ermitteln, ob das Muster für reguläre Ausdrücke in der Eingabezeichenfolge gefunden wurde, indem Sie die Eigenschaft des zurückgegebenen MatchSuccess Objekts überprüfen. Wenn eine Übereinstimmung gefunden wird, enthält die Eigenschaft des Match zurückgegebenen Value Objekts die übereinstimmene Teilzeichenfolge. Wenn keine Übereinstimmung gefunden wird, ist der Wert Empty.

Diese Methode gibt die erste Übereinstimmung zurück. Sie können nachfolgende Übereinstimmungen abrufen, indem Sie die Methode des zurückgegebenen Match-Objekts NextMatch() wiederholt aufrufen. Sie können auch alle Übereinstimmungen in einem einzelnen Methodenaufruf abrufen, indem Sie aufrufen Matches(String).

Die RegexMatchTimeoutException Ausnahme wird ausgelöst, wenn die Ausführungszeit des Abgleichsvorgangs das vom Regex(String, RegexOptions, TimeSpan) Konstruktor angegebene Timeoutintervall überschreitet. Wenn Sie beim Aufrufen des Konstruktors kein Timeoutintervall festlegen, wird die Ausnahme ausgelöst, wenn der Vorgang einen Timeoutwert überschreitet, der für die Anwendungsdomäne festgelegt wurde, in der das Regex Objekt erstellt wird. Wenn kein Timeout im Regex Konstruktoraufruf oder in den Eigenschaften der Anwendungsdomäne definiert ist oder wenn der Timeoutwert ist InfiniteMatchTimeout, wird keine Ausnahme ausgelöst.

Weitere Informationen

Gilt für:

Match(String, Int32)

Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs

Durchsucht die Eingabezeichenfolge nach dem ersten Vorkommen eines regulären Ausdrucks, beginnend mit der angegebenen Anfangsposition in der Zeichenfolge.

public:
 System::Text::RegularExpressions::Match ^ Match(System::String ^ input, int startat);
public System.Text.RegularExpressions.Match Match(string input, int startat);
member this.Match : string * int -> System.Text.RegularExpressions.Match
Public Function Match (input As String, startat As Integer) As Match

Parameter

input
String

Die Zeichenfolge, die nach einer Übereinstimmung gesucht werden soll.

startat
Int32

Die nullbasierte Zeichenposition, an der die Suche gestartet werden soll.

Gibt zurück

Ein Objekt, das Informationen zur Übereinstimmung enthält.

Ausnahmen

input ist null.

startat ist kleiner als Null oder größer als die Länge von input.

Ein Timeout ist aufgetreten.

Hinweise

Die Match(String, Int32) Methode gibt die erste Teilzeichenfolge zurück, die einem Muster für reguläre Ausdrücke entspricht, beginnend bei oder nach der startat Zeichenposition, in einer Eingabezeichenfolge. Das Muster für reguläre Ausdrücke, nach dem die Match(String, Int32) Methode durchsucht wird, wird durch den Aufruf eines der Regex Klassenkonstruktoren definiert. Informationen zu den Sprachelementen, die zum Erstellen eines Musters für reguläre Ausdrücke verwendet werden, finden Sie unter "Sprache für reguläre Ausdrücke" – Kurzübersicht.

Der startat Parameter

Verwenden Sie den startat Parameter, um die Zeichenposition anzugeben, an der die Suche beginnt. In einer Links-nach-rechts-Suche werden alle Übereinstimmungen, die vor der startat Zeichenfolge beginnen, ignoriert. Um an der Standardposition zu beginnen, verwenden Sie die Match(String) Überladung (oder übergeben Sie 0 für eine Links-nach-rechts-Suche und input.Length für eine Rechts-nach-links-Suche). Obwohl die Suche beginnt startat, ist der Index aller zurückgegebenen Übereinstimmungen relativ zum Anfang der Zeichenfolge.

Die Engine für reguläre Ausdrücke gibt zwar keine Übereinstimmung zurück, die vor startat beginnt, ignoriert aber die Zeichenfolge vor startat nicht. Das bedeutet, dass Assertionen wie Anker oder Lookbehindassertionen weiterhin für die Eingabe als Ganzes gelten. Der folgende Code enthält zum Beispiel ein strukturiertes Muster mit einer Lookbehind-Assertion, die erfüllt ist, obwohl sie vor dem startat-Index von 5 in der Zeichenfolge auftritt.

string input = "Zip code: 98052";
var regex = new Regex(@"(?<=Zip code: )\d{5}");
Match match = regex.Match(input, 5);
if (match.Success)
{
    Console.WriteLine($"Match found: {match.Value}");
}

// This code prints the following output:
//
// Match found: 98052

Tip

  • Wenn ein Muster mit dem ^ Anker beginnt, startat größer als 0 ist und der reguläre Ausdruck nicht verwendet RegexOptions.Multilinewird, werden jemals keine Übereinstimmungen gefunden, da sie durch ^ den Beginn bei Index 0 eingeschränkt werden.
  • Der \G Anker ist erfüllt bei startat. Wenn Sie eine Übereinstimmung so einschränken möchten, dass sie genau an einer bestimmten Zeichenposition in der Zeichenfolge beginnt, verankern Sie daher bei einem Links-nach-rechts-Muster den regulären Ausdruck mit \G auf der linken Seite. Dadurch wird die Übereinstimmung so eingeschränkt, dass sie genau bei startat beginnen muss (oder dass die Übereinstimmungen zusammenhängend sind, wenn mehrere Übereinstimmungen gewünscht sind).

Suchen von rechts nach links

Eine Rechts-nach-links-Suche, d. a., wenn das Muster für reguläre Ausdrücke mit der RegexOptions.RightToLeft Option erstellt wird, verhält sich wie folgt:

  • Der Scan bewegt sich in die entgegengesetzte Richtung und das Muster wird von hinten (rechts) nach vorne (links) abgeglichen.
  • Die Standardstartposition ist das rechte Ende der Eingabezeichenfolge.
  • Wenn startat angegeben, beginnt der Rechts-nach-links-Scan mit dem Zeichen bei startat - 1 (nicht startat).
  • Wenn der \G-Anker am rechten Ende eines Musters angegeben wird, wird die (erste) Übereinstimmung so eingeschränkt, dass sie genau bei startat - 1 endet.

Weitere Informationen zu Suchvorgängen von rechts nach links finden Sie im Modus von rechts nach links.

Ermitteln, ob eine Übereinstimmung gefunden wird

Sie können ermitteln, ob das Muster für reguläre Ausdrücke in der Eingabezeichenfolge gefunden wurde, indem Sie den Wert der Eigenschaft des zurückgegebenen Match Objekts Success überprüfen. Wenn eine Übereinstimmung gefunden wird, enthält die Match-Eigenschaft des zurückgegebenen Value-Objekts die Teilzeichenfolge aus input, die mit dem Muster des regulären Ausdrucks übereinstimmt. Wenn keine Übereinstimmung gefunden wird, ist der Wert String.Empty.

Erste Übereinstimmung oder mehrere Übereinstimmungen

Diese Methode gibt die erste Teilzeichenfolge zurück, die gefunden wird, indem sie input mit der startat Position (oder bei Rechts-nach-links-Suchvorgängen bei startat - 1) beginnt, die mit dem Muster für reguläre Ausdrücke übereinstimmt. Sie können nachfolgende Übereinstimmungen abrufen, indem Sie die Methode des zurückgegebenen Match-Objekts Match.NextMatch wiederholt aufrufen. Sie können auch alle Übereinstimmungen in einem einzelnen Methodenaufruf abrufen, indem Sie die Regex.Matches(String, Int32) Methode aufrufen.

Time-Out-Ausnahmen

Die RegexMatchTimeoutException Ausnahme wird ausgelöst, wenn die Ausführungszeit des Abgleichsvorgangs das vom Regex.Regex(String, RegexOptions, TimeSpan) Konstruktor angegebene Timeoutintervall überschreitet. Wenn Sie beim Aufrufen des Konstruktors kein Timeoutintervall festlegen, wird die Ausnahme ausgelöst, wenn der Vorgang einen Timeoutwert überschreitet, der für die Anwendungsdomäne festgelegt wurde, in der das Regex Objekt erstellt wird. Wenn kein Timeout im Regex Konstruktoraufruf oder in den Eigenschaften der Anwendungsdomäne definiert ist oder wenn der Timeoutwert ist Regex.InfiniteMatchTimeout, wird keine Ausnahme ausgelöst.

Weitere Informationen

Gilt für:

Match(String, String)

Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs

Durchsucht die angegebene Eingabezeichenfolge nach dem ersten Vorkommen des angegebenen regulären Ausdrucks.

public:
 static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern);
public static System.Text.RegularExpressions.Match Match(string input, string pattern);
static member Match : string * string -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String) As Match

Parameter

input
String

Die Zeichenfolge, die nach einer Übereinstimmung gesucht werden soll.

pattern
String

Das muster des regulären Ausdrucks, das übereinstimmen soll.

Gibt zurück

Ein Objekt, das Informationen zur Übereinstimmung enthält.

Ausnahmen

Es ist ein Fehler beim Analysieren regulärer Ausdrücke aufgetreten.

input oder pattern ist null.

Ein Timeout ist aufgetreten.

Hinweise

Die statische Match(String, String) Methode entspricht dem Erstellen eines Regex Objekts mit dem angegebenen Muster und dem Aufrufen der Instanzmethode Match(String) . Das Modul für reguläre Ausdrücke speichert das Muster zwischen.

Sie können ermitteln, ob das Muster für reguläre Ausdrücke in der Eingabezeichenfolge gefunden wurde, indem Sie die Eigenschaft des zurückgegebenen MatchSuccess Objekts überprüfen. Wenn eine Übereinstimmung gefunden wird, enthält die Eigenschaft des Match zurückgegebenen Value Objekts die übereinstimmene Teilzeichenfolge. Wenn keine Übereinstimmung gefunden wird, ist der Wert Empty.

Sie können nachfolgende Übereinstimmungen abrufen, indem Sie die Methode des zurückgegebenen Match-Objekts NextMatch() wiederholt aufrufen. Sie können auch alle Übereinstimmungen in einem einzelnen Methodenaufruf abrufen, indem Sie die Matches(String, String) Methode aufrufen.

Hinweise für Aufrufer

Diese Methode timeout nach einem Intervall, das dem Standardtimeoutwert der Anwendungsdomäne entspricht, in der sie aufgerufen wird. Wenn kein Timeoutwert für die Anwendungsdomäne definiert wurde, wird der Wert InfiniteMatchTimeoutverwendet, der die Zeitüberschreitung der Methode verhindert. Die empfohlene statische Methode zum Abrufen einer Mustervergleichung ist Match(String, String), mit der Sie das Timeoutintervall festlegen können.

Weitere Informationen

Gilt für:

Match(String, Int32, Int32)

Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs

Durchsucht die Eingabezeichenfolge nach dem ersten Vorkommen eines regulären Ausdrucks, beginnend mit der angegebenen Anfangsposition und nur die angegebene Anzahl von Zeichen.

public:
 System::Text::RegularExpressions::Match ^ Match(System::String ^ input, int beginning, int length);
public System.Text.RegularExpressions.Match Match(string input, int beginning, int length);
member this.Match : string * int * int -> System.Text.RegularExpressions.Match
Public Function Match (input As String, beginning As Integer, length As Integer) As Match

Parameter

input
String

Die Zeichenfolge, die nach einer Übereinstimmung gesucht werden soll.

beginning
Int32

Die nullbasierte Zeichenposition in der Eingabezeichenfolge, die die am weitesten links zu durchsuchende Position definiert.

length
Int32

Die Anzahl der Zeichen in der Teilzeichenfolge, die in die Suche eingeschlossen werden soll.

Gibt zurück

Ein Objekt, das Informationen zur Übereinstimmung enthält.

Ausnahmen

input ist null.

beginning ist kleiner als Null oder größer als die Länge von input. -oder- length ist kleiner als Null oder größer als die Länge von input. -oder- beginning + length - 1 identifiziert eine Position außerhalb des Bereichs von input.

Ein Timeout ist aufgetreten.

Hinweise

Die Match(String, Int32, Int32) Methode durchsucht den von den input Parametern definierten beginning Teil des length Musters für reguläre Ausdrücke. beginning definiert immer den Index des äußerst linken Zeichens, das in die Suche aufgenommen werden soll, und length definiert die maximale Anzahl von zu durchsuchenden Zeichen. Zusammen definieren sie den Bereich der Suche. Das Verhalten ist genau so, als ob die Eingabe effektiv input.Substring(beginning, length)war, außer dass der Index einer Übereinstimmung relativ zum Anfang von input. Dies bedeutet, dass sich alle Anker- oder Nullbreiten-Assertionen am Anfang oder Ende des Musters verhalten, als ob keine Eingabe außerhalb dieses Bereichs vorhanden ist.

Wenn die Suche von links nach rechts fortgesetzt wird (Standardeinstellung), durchsucht das reguläre Ausdrucksmodul das Zeichen am Index beginning bis zum Zeichen am Index beginning + length - 1. Wenn das Modul für reguläre Ausdrücke mithilfe der RightToLeft Option instanziiert wurde, durchsucht das Modul das Zeichen am Index beginning + length - 1 bis zum Zeichen am Index beginning.

Diese Methode gibt die erste Übereinstimmung zurück, die innerhalb dieses Bereichs gefunden wurde. Sie können nachfolgende Übereinstimmungen abrufen, indem Sie die Methode des zurückgegebenen Match-Objekts NextMatch() wiederholt aufrufen.

Weitere Informationen

Gilt für:

Match(String, String, RegexOptions)

Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs

Durchsucht die Eingabezeichenfolge nach dem ersten Vorkommen des angegebenen regulären Ausdrucks mithilfe der angegebenen Abgleichsoptionen.

public:
 static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static System.Text.RegularExpressions.Match Match(string input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member Match : string * string * System.Text.RegularExpressions.RegexOptions -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String, options As RegexOptions) As Match

Parameter

input
String

Die Zeichenfolge, die nach einer Übereinstimmung gesucht werden soll.

pattern
String

Das muster des regulären Ausdrucks, das übereinstimmen soll.

options
RegexOptions

Eine bitweise Kombination der Enumerationswerte, die Optionen für den Abgleich bereitstellen.

Gibt zurück

Ein Objekt, das Informationen zur Übereinstimmung enthält.

Ausnahmen

Es ist ein Fehler beim Analysieren regulärer Ausdrücke aufgetreten.

input oder pattern ist null.

options ist keine gültige bitweise Kombination von RegexOptions Werten.

Ein Timeout ist aufgetreten.

Hinweise

Die statische Match(String, String, RegexOptions) Methode entspricht dem Erstellen eines Regex Objekts mit dem Regex(String, RegexOptions) Konstruktor und dem Aufrufen der Instanzmethode Match(String) .

Sie können ermitteln, ob das Muster für reguläre Ausdrücke in der Eingabezeichenfolge gefunden wurde, indem Sie die Eigenschaft des zurückgegebenen MatchSuccess Objekts überprüfen. Sie können nachfolgende Übereinstimmungen abrufen, indem Sie die Methode des zurückgegebenen Match-Objekts NextMatch() wiederholt aufrufen. Sie können auch alle Übereinstimmungen in einem einzelnen Methodenaufruf abrufen, indem Sie die Matches(String, String, RegexOptions) Methode aufrufen.

Hinweise für Aufrufer

Diese Methode timeout nach einem Intervall, das dem Standardtimeoutwert der Anwendungsdomäne entspricht, in der sie aufgerufen wird. Wenn kein Timeoutwert für die Anwendungsdomäne definiert wurde, wird der Wert InfiniteMatchTimeoutverwendet, der die Zeitüberschreitung der Methode verhindert. Die empfohlene statische Methode zum Abrufen einer Mustervergleichung ist Match(String, String), mit der Sie das Timeoutintervall festlegen können.

Weitere Informationen

Gilt für:

Match(String, String, RegexOptions, TimeSpan)

Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs
Quelle:
Regex.Match.cs

Durchsucht die Eingabezeichenfolge nach dem ersten Vorkommen des angegebenen regulären Ausdrucks unter Verwendung der angegebenen Abgleichsoptionen und des Timeoutintervalls.

public:
 static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static System.Text.RegularExpressions.Match Match(string input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member Match : string * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As Match

Parameter

input
String

Die Zeichenfolge, die nach einer Übereinstimmung gesucht werden soll.

pattern
String

Das muster des regulären Ausdrucks, das übereinstimmen soll.

options
RegexOptions

Eine bitweise Kombination der Enumerationswerte, die Optionen für den Abgleich bereitstellen.

matchTimeout
TimeSpan

Ein Timeoutintervall oder InfiniteMatchTimeout um anzugeben, dass die Methode kein Timeout ausführen soll.

Gibt zurück

Ein Objekt, das Informationen zur Übereinstimmung enthält.

Ausnahmen

Es ist ein Fehler beim Analysieren regulärer Ausdrücke aufgetreten.

input oder pattern ist null.

options ist keine gültige bitweise Kombination von RegexOptions Werten. -oder- matchTimeout ist negativ, null oder größer als etwa 24 Tage.

Ein Timeout ist aufgetreten.

Hinweise

Die statische Match(String, String, RegexOptions, TimeSpan) Methode entspricht dem Erstellen eines Regex Objekts mit dem Regex(String, RegexOptions, TimeSpan) Konstruktor und dem Aufrufen der Instanzmethode Match(String) .

Sie können ermitteln, ob das Muster für reguläre Ausdrücke in der Eingabezeichenfolge gefunden wurde, indem Sie die Eigenschaft des zurückgegebenen MatchSuccess Objekts überprüfen. Sie können nachfolgende Übereinstimmungen abrufen, indem Sie die Methode des zurückgegebenen Match-Objekts NextMatch() wiederholt aufrufen.

Der matchTimeout Parameter gibt an, wie lange eine Musterabgleichsmethode versuchen soll, eine Übereinstimmung zu finden, bevor ein Zeitüberschreitungen auftreten. Das Festlegen eines Timeoutintervalls verhindert, dass reguläre Ausdrücke, die auf übermäßigem Rückverfolgungsvorgang basieren, nicht mehr reagieren, wenn sie Eingaben verarbeiten, die nahezu Übereinstimmungen enthalten. Wenn in diesem Zeitintervall keine Übereinstimmung gefunden wird, löst die Methode eine RegexMatchTimeoutException Ausnahme aus. matchTimeout überschreibt jeden Standardtimeoutwert, der für die Anwendungsdomäne definiert ist, in der die Methode ausgeführt wird.

Hinweise für Aufrufer

Es wird empfohlen, den matchTimeout Parameter auf einen geeigneten Wert festzulegen, z. B. zwei Sekunden. Wenn Sie Timeouts durch Angeben InfiniteMatchTimeoutdeaktivieren, bietet das Modul für reguläre Ausdrücke etwas bessere Leistung. Sie sollten Timeouts jedoch nur unter den folgenden Bedingungen deaktivieren:

  • Wenn die von einem regulären Ausdruck verarbeitete Eingabe von einer bekannten und vertrauenswürdigen Quelle abgeleitet wird oder aus statischem Text besteht. Dadurch wird Text ausgeschlossen, der dynamisch von Benutzern eingegeben wurde.

  • Wenn das Muster für reguläre Ausdrücke gründlich getestet wurde, um sicherzustellen, dass es Übereinstimmungen, Nicht-Übereinstimmungen und nahe Übereinstimmungen effizient verarbeitet.

  • Wenn das Muster für reguläre Ausdrücke keine Sprachelemente enthält, die bekanntermaßen zu übermäßigem Rückverfolgungsverhalten bei der Verarbeitung einer Nahübereinstimmung führen.

Weitere Informationen

Gilt für: