Regex.Match Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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,startatgröß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
\GAnker ist erfüllt beistartat. 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\Gauf der linken Seite. Dadurch wird die Übereinstimmung so eingeschränkt, dass sie genau beistartatbeginnen 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
startatangegeben, beginnt der Rechts-nach-links-Scan mit dem Zeichen beistartat- 1 (nichtstartat). - Wenn der
\G-Anker am rechten Ende eines Musters angegeben wird, wird die (erste) Übereinstimmung so eingeschränkt, dass sie genau beistartat- 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.