Regex.IsMatch 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.
Gibt an, ob der reguläre Ausdruck eine Übereinstimmung in der Eingabezeichenfolge findet.
Überlädt
IsMatch(String, String, RegexOptions, TimeSpan) |
Gibt an, ob der angegebene reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabezeichenfolge mithilfe der angegebenen Abgleichsoptionen und des Timeoutintervalls findet. |
IsMatch(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan) |
Gibt an, ob der angegebene reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabespanne mithilfe der angegebenen Abgleichsoptionen und des Timeoutintervalls findet. |
IsMatch(String, String, RegexOptions) |
Gibt an, ob der angegebene reguläre Ausdruck mithilfe der angegebenen Übereinstimmungsoptionen eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet. |
IsMatch(ReadOnlySpan<Char>, String, RegexOptions) |
Gibt an, ob der angegebene reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabespanne mithilfe der angegebenen Abgleichsoptionen findet. |
IsMatch(String, String) |
Gibt an, ob der angegebene reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet. |
IsMatch(ReadOnlySpan<Char>, Int32) |
Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck eine Übereinstimmung in einer angegebenen Eingabespanne findet. |
IsMatch(ReadOnlySpan<Char>, String) |
Gibt an, ob der angegebene reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabespanne findet. |
IsMatch(String, Int32) |
Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet, beginnend mit der angegebenen Anfangsposition in der Zeichenfolge. |
IsMatch(String) |
Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck eine Übereinstimmung in einer angegebenen Eingabezeichenfolge findet. |
IsMatch(ReadOnlySpan<Char>) |
Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck eine Übereinstimmung in einer angegebenen Eingabespanne findet. |
IsMatch(String, String, RegexOptions, TimeSpan)
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
Gibt an, ob der angegebene reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabezeichenfolge mithilfe der angegebenen Abgleichsoptionen und des Timeoutintervalls findet.
public:
static bool IsMatch(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static bool IsMatch (string input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member IsMatch : string * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> bool
Public Shared Function IsMatch (input As String, pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As Boolean
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 hat.
Gibt zurück
true
, wenn der reguläre Ausdruck eine Übereinstimmung findet; andernfalls false
.
Ausnahmen
Es ist ein Fehler beim Analysieren regulärer Ausdrücke aufgetreten.
input
oder pattern
ist null
.
options
ist kein gültiger RegexOptions Wert.
-oder-
matchTimeout
ist negativ, null oder größer als etwa 24 Tage.
Ein Timeout ist aufgetreten.
Beispiele
Im folgenden Beispiel wird die Verwendung der IsMatch(String, String, RegexOptions, TimeSpan)-Methode veranschaulicht, um zu bestimmen, ob eine Zeichenfolge eine gültige Teilenummer ist. Der reguläre Ausdruck geht davon aus, dass die Teilenummer ein bestimmtes Format aufweist, das aus drei Sätzen von Zeichen besteht, die durch Bindestriche getrennt sind. Der erste Satz, der vier Zeichen enthält, muss aus einem alphanumerischen Zeichen bestehen, gefolgt von zwei numerischen Zeichen, gefolgt von einem alphanumerischen Zeichen. Der zweite Satz, der aus drei Zeichen besteht, muss numerisch sein. Der dritte Satz, der aus vier Zeichen besteht, muss drei numerische Zeichen enthalten, gefolgt von einem alphanumerischen Zeichen. Das Abgleichen des Musters für reguläre Ausdrücke sollte eine minimale Suche durch die Eingabezeichenfolge erfordern, sodass die Methode ein Timeoutintervall von 500 Millisekunden festlegt.
string[] partNumbers = [ "1298-673-4192", "A08Z-931-468a",
"_A90-123-129X", "12345-KKA-1230",
"0919-2893-1256" ];
string pattern = @"^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$";
foreach (string partNumber in partNumbers)
try
{
bool isMatch = Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(500));
Console.WriteLine($"{partNumber} {(isMatch ? "is" : "is not")} a valid part number.");
}
catch (RegexMatchTimeoutException e)
{
Console.WriteLine($"Timeout after {e.MatchTimeout} seconds matching {e.Input}.");
}
// The example displays the following output:
// 1298-673-4192 is a valid part number.
// A08Z-931-468a is a valid part number.
// _A90-123-129X is not a valid part number.
// 12345-KKA-1230 is not a valid part number.
// 0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468a",
"_A90-123-129X", "12345-KKA-1230",
"0919-2893-1256" }
Dim pattern As String = "^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$"
For Each partNumber As String In partNumbers
Try
Console.WriteLine("{0} {1} a valid part number.",
partNumber, _
IIF(Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase), _
"is", "is not"),
TimeSpan.FromMilliseconds(500))
Catch e As RegexMatchTimeoutException
Console.WriteLine("Timeout after {0} seconds matching {1}.",
e.MatchTimeout, e.Input)
End Try
Next
End Sub
End Module
' The example displays the following output:
' 1298-673-4192 is a valid part number.
' A08Z-931-468a is a valid part number.
' _A90-123-129X is not a valid part number.
' 12345-KKA-1230 is not a valid part number.
' 0919-2893-1256 is not a valid part number.
Das Muster für reguläre Ausdrücke lautet:
^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$
Die folgende Tabelle zeigt, wie das Muster für reguläre Ausdrücke interpretiert wird.
Muster | Beschreibung |
---|---|
^ |
Beginnen Sie die Übereinstimmung am Anfang der Zeichenfolge. |
[A-Z0-9] |
Zuordnen eines einzelnen alphabetischen Zeichens aus A bis Z oder einem beliebigen numerischen Zeichen. |
\d{2} |
Stimmen Sie zwei numerische Zeichen überein. |
[A-Z0-9] |
Zuordnen eines einzelnen alphabetischen Zeichens aus A bis Z oder einem beliebigen numerischen Zeichen. |
- |
Stimmen Sie mit einem Bindestrich überein. |
\d{3} |
Entspricht genau drei numerischen Zeichen. |
(-\d{3}){2} |
Suchen Sie einen Bindestrich gefolgt von drei numerischen Zeichen, und stimmen Sie zwei Vorkommen dieses Musters überein. |
[A-Z0-9] |
Zuordnen eines einzelnen alphabetischen Zeichens aus A bis Z oder einem beliebigen numerischen Zeichen. |
$ |
Beenden Sie die Übereinstimmung am Ende der Zeichenfolge. |
Das Aufrufen der IsMatch(String, String, RegexOptions, TimeSpan)-Methode mit dem auf RegexOptions.IgnoreCase festgelegten options
Parameter entspricht dem Definieren des folgenden regulären Ausdrucks:
[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]
Ein Vergleich finden Sie im Beispiel für die IsMatch(String, String)-Methode.
Hinweise
Die IsMatch-Methode wird in der Regel verwendet, um eine Zeichenfolge zu überprüfen oder sicherzustellen, dass eine Zeichenfolge einem bestimmten Muster entspricht, ohne diese Zeichenfolge für nachfolgende Manipulationen abzurufen. Wenn Sie ermitteln möchten, ob eine oder mehrere Zeichenfolgen mit einem Muster für reguläre Ausdrücke übereinstimmen und diese dann für nachfolgende Manipulationen abrufen möchten, rufen Sie die Match- oder Matches-Methode auf.
Die statische IsMatch(String, String, RegexOptions, TimeSpan)-Methode entspricht dem Erstellen eines Regex Objekts mit dem durch pattern
angegebenen Muster für reguläre Ausdrücke und den optionen für reguläre Ausdrücke, die durch options
angegeben werden, und dem Aufrufen der IsMatch(String) Instanzmethode. Dieses Muster für reguläre Ausdrücke wird für den schnellen Abruf durch das Modul für reguläre Ausdrücke zwischengespeichert.
Der pattern
-Parameter besteht aus Sprachelementen für reguläre Ausdrücke, die die zu übereinstimmende Zeichenfolge symbolisch beschreiben. Weitere Informationen zu regulären Ausdrücken finden Sie unter .NET Regular Expressions und Regular Expression Language – Kurzübersicht.
Der matchTimeout
-Parameter gibt an, wie lange eine Musterabgleichsmethode versucht werden soll, eine Übereinstimmung zu finden, bevor es zu einem Zeitüberschreitung kommt. 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. Weitere Informationen finden Sie unter Bewährte Methoden für reguläre Ausdrücke und Backtracking-. 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 parameter matchTimeout
auf einen geeigneten Wert festzulegen, z. B. zwei Sekunden. Wenn Sie Timeouts deaktivieren, indem Sie InfiniteMatchTimeoutangeben, 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:
IsMatch(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan)
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
Gibt an, ob der angegebene reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabespanne mithilfe der angegebenen Abgleichsoptionen und des Timeoutintervalls findet.
public:
static bool IsMatch(ReadOnlySpan<char> input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static bool IsMatch (ReadOnlySpan<char> input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member IsMatch : ReadOnlySpan<char> * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> bool
Public Shared Function IsMatch (input As ReadOnlySpan(Of Char), pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As Boolean
Parameter
- input
- ReadOnlySpan<Char>
Die Spanne, um nach einer Übereinstimmung zu suchen.
- 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 hat.
Gibt zurück
true
, wenn der reguläre Ausdruck eine Übereinstimmung findet; andernfalls false
.
Ausnahmen
Es ist ein Fehler beim Analysieren regulärer Ausdrücke aufgetreten.
pattern
ist null
Ein Timeout ist aufgetreten.
options
ist nicht in einem gültigen RegexOptions Wert enthalten, oder matchTimeout
ist negativ, null oder größer als etwa 24 Tage.
Gilt für:
IsMatch(String, String, RegexOptions)
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
Gibt an, ob der angegebene reguläre Ausdruck mithilfe der angegebenen Übereinstimmungsoptionen eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet.
public:
static bool IsMatch(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static bool IsMatch (string input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member IsMatch : string * string * System.Text.RegularExpressions.RegexOptions -> bool
Public Shared Function IsMatch (input As String, pattern As String, options As RegexOptions) As Boolean
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
true
, wenn der reguläre Ausdruck eine Übereinstimmung findet; andernfalls false
.
Ausnahmen
Es ist ein Fehler beim Analysieren regulärer Ausdrücke aufgetreten.
input
oder pattern
ist null
.
options
ist kein gültiger RegexOptions Wert.
Ein Timeout ist aufgetreten. Weitere Informationen zu Timeouts finden Sie im Abschnitt "Hinweise".
Beispiele
Im folgenden Beispiel wird die Verwendung der IsMatch(String, String)-Methode veranschaulicht, um zu bestimmen, ob eine Zeichenfolge eine gültige Teilenummer ist. Der reguläre Ausdruck geht davon aus, dass die Teilenummer ein bestimmtes Format aufweist, das aus drei Sätzen von Zeichen besteht, die durch Bindestriche getrennt sind. Der erste Satz, der vier Zeichen enthält, muss aus einem alphanumerischen Zeichen bestehen, gefolgt von zwei numerischen Zeichen, gefolgt von einem alphanumerischen Zeichen. Der zweite Satz, der aus drei Zeichen besteht, muss numerisch sein. Der dritte Satz, der aus vier Zeichen besteht, muss drei numerische Zeichen enthalten, gefolgt von einem alphanumerischen Zeichen.
string[] partNumbers = [ "1298-673-4192", "A08Z-931-468a",
"_A90-123-129X", "12345-KKA-1230",
"0919-2893-1256" ];
string pattern = @"^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$";
foreach (string partNumber in partNumbers)
Console.WriteLine("{0} {1} a valid part number.",
partNumber,
Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase) ? "is" : "is not");
// The example displays the following output:
// 1298-673-4192 is a valid part number.
// A08Z-931-468a is a valid part number.
// _A90-123-129X is not a valid part number.
// 12345-KKA-1230 is not a valid part number.
// 0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468a", _
"_A90-123-129X", "12345-KKA-1230", _
"0919-2893-1256" }
Dim pattern As String = "^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$"
For Each partNumber As String In partNumbers
Console.WriteLine("{0} {1} a valid part number.", _
partNumber, _
IIF(Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase), _
"is", "is not"))
Next
End Sub
End Module
' The example displays the following output:
' 1298-673-4192 is a valid part number.
' A08Z-931-468a is a valid part number.
' _A90-123-129X is not a valid part number.
' 12345-KKA-1230 is not a valid part number.
' 0919-2893-1256 is not a valid part number.
Das Muster für reguläre Ausdrücke lautet:
^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$
Die folgende Tabelle zeigt, wie das Muster für reguläre Ausdrücke interpretiert wird.
Muster | Beschreibung |
---|---|
^ |
Beginnen Sie die Übereinstimmung am Anfang der Zeichenfolge. |
[A-Z0-9] |
Zuordnen eines einzelnen alphabetischen Zeichens aus A bis Z oder einem beliebigen numerischen Zeichen. |
\d{2} |
Stimmen Sie zwei numerische Zeichen überein. |
[A-Z0-9] |
Zuordnen eines einzelnen alphabetischen Zeichens aus A bis Z oder einem beliebigen numerischen Zeichen. |
- |
Stimmen Sie mit einem Bindestrich überein. |
\d{3} |
Entspricht genau drei numerischen Zeichen. |
(-\d{3}){2} |
Suchen Sie einen Bindestrich gefolgt von drei numerischen Zeichen, und stimmen Sie mit zwei Vorkommen dieses Musters überein. |
[A-Z0-9] |
Zuordnen eines einzelnen alphabetischen Zeichens aus A bis Z oder einem beliebigen numerischen Zeichen. |
$ |
Beenden Sie die Übereinstimmung am Ende der Zeichenfolge. |
Das Aufrufen der IsMatch(String, String, RegexOptions)-Methode mit dem auf RegexOptions.IgnoreCase festgelegten options
Parameter entspricht dem Definieren des folgenden regulären Ausdrucks:
[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]
Ein Vergleich finden Sie im Beispiel für die IsMatch(String, String)-Methode.
Hinweise
Die IsMatch-Methode wird in der Regel verwendet, um eine Zeichenfolge zu überprüfen oder sicherzustellen, dass eine Zeichenfolge einem bestimmten Muster entspricht, ohne diese Zeichenfolge für nachfolgende Manipulationen abzurufen. Wenn Sie ermitteln möchten, ob eine oder mehrere Zeichenfolgen mit einem Muster für reguläre Ausdrücke übereinstimmen und diese dann für nachfolgende Manipulationen abrufen möchten, rufen Sie die Match- oder Matches-Methode auf.
Die statische IsMatch(String, String, RegexOptions)-Methode entspricht dem Erstellen eines Regex Objekts mit dem durch pattern
angegebenen Muster für reguläre Ausdrücke und den optionen für reguläre Ausdrücke, die durch options
angegeben werden, und dem Aufrufen der IsMatch(String) Instanzmethode. Dieses Muster für reguläre Ausdrücke wird für den schnellen Abruf durch das Modul für reguläre Ausdrücke zwischengespeichert.
Der pattern
-Parameter besteht aus Sprachelementen für reguläre Ausdrücke, die die zu übereinstimmende Zeichenfolge symbolisch beschreiben. Weitere Informationen zu regulären Ausdrücken finden Sie unter .NET Regular Expressions und Regular Expression Language – Kurzübersicht.
Die RegexMatchTimeoutException Ausnahme wird ausgelöst, wenn die Ausführungszeit des Abgleichsvorgangs das für die Anwendungsdomäne angegebene Timeoutintervall überschreitet, in dem die Methode aufgerufen wird. Wenn kein Timeout in den Eigenschaften der Anwendungsdomäne definiert ist oder der Timeoutwert Regex.InfiniteMatchTimeoutist, wird keine Ausnahme ausgelöst.
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, wodurch verhindert wird, dass die Methode einen Timeoutzeitpunkt erhält. Die empfohlene statische Methode zum Überprüfen einer Mustervergleichung ist IsMatch(String, String, RegexOptions, TimeSpan), mit der Sie das Timeoutintervall festlegen können.
Weitere Informationen
Gilt für:
IsMatch(ReadOnlySpan<Char>, String, RegexOptions)
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
Gibt an, ob der angegebene reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabespanne mithilfe der angegebenen Abgleichsoptionen findet.
public:
static bool IsMatch(ReadOnlySpan<char> input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static bool IsMatch (ReadOnlySpan<char> input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member IsMatch : ReadOnlySpan<char> * string * System.Text.RegularExpressions.RegexOptions -> bool
Public Shared Function IsMatch (input As ReadOnlySpan(Of Char), pattern As String, options As RegexOptions) As Boolean
Parameter
- input
- ReadOnlySpan<Char>
Die Spanne, um nach einer Übereinstimmung zu suchen.
- 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
true
, wenn der reguläre Ausdruck eine Übereinstimmung findet; andernfalls false
.
Ausnahmen
Es ist ein Fehler beim Analysieren regulärer Ausdrücke aufgetreten.
pattern
ist null
Ein Timeout ist aufgetreten.
options
befindet sich nicht in einem gültigen RegexOptions Wert.
Gilt für:
IsMatch(String, String)
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
Gibt an, ob der angegebene reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet.
public:
static bool IsMatch(System::String ^ input, System::String ^ pattern);
public static bool IsMatch (string input, string pattern);
static member IsMatch : string * string -> bool
Public Shared Function IsMatch (input As String, pattern As String) As Boolean
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
true
, wenn der reguläre Ausdruck eine Übereinstimmung findet; andernfalls false
.
Ausnahmen
Es ist ein Fehler beim Analysieren regulärer Ausdrücke aufgetreten.
input
oder pattern
ist null
.
Ein Timeout ist aufgetreten. Weitere Informationen zu Timeouts finden Sie im Abschnitt "Hinweise".
Beispiele
Im folgenden Beispiel wird die Verwendung der IsMatch(String, String)-Methode veranschaulicht, um zu bestimmen, ob eine Zeichenfolge eine gültige Teilenummer ist. Der reguläre Ausdruck geht davon aus, dass die Teilenummer ein bestimmtes Format aufweist, das aus drei Sätzen von Zeichen besteht, die durch Bindestriche getrennt sind. Der erste Satz, der vier Zeichen enthält, muss aus einem alphanumerischen Zeichen bestehen, gefolgt von zwei numerischen Zeichen, gefolgt von einem alphanumerischen Zeichen. Der zweite Satz, der aus drei Zeichen besteht, muss numerisch sein. Der dritte Satz, der aus vier Zeichen besteht, muss drei numerische Zeichen enthalten, gefolgt von einem alphanumerischen Zeichen.
string[] partNumbers = [ "1298-673-4192", "A08Z-931-468A",
"_A90-123-129X", "12345-KKA-1230",
"0919-2893-1256" ];
string pattern = @"^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$";
foreach (string partNumber in partNumbers)
Console.WriteLine($"{partNumber} {(Regex.IsMatch(partNumber, pattern) ? "is" : "is not")} " +
$"a valid part number.");
// The example displays the following output:
// 1298-673-4192 is a valid part number.
// A08Z-931-468A is a valid part number.
// _A90-123-129X is not a valid part number.
// 12345-KKA-1230 is not a valid part number.
// 0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468A", _
"_A90-123-129X", "12345-KKA-1230", _
"0919-2893-1256" }
Dim pattern As String = "^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$"
For Each partNumber As String In partNumbers
Console.WriteLine("{0} {1} a valid part number.", _
partNumber, _
IIF(Regex.IsMatch(partNumber, pattern), "is", "is not"))
Next
End Sub
End Module
' The example displays the following output:
' 1298-673-4192 is a valid part number.
' A08Z-931-468A is a valid part number.
' _A90-123-129X is not a valid part number.
' 12345-KKA-1230 is not a valid part number.
' 0919-2893-1256 is not a valid part number.
Das Muster für reguläre Ausdrücke lautet:
^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$
Die folgende Tabelle zeigt, wie das Muster für reguläre Ausdrücke interpretiert wird.
Muster | Beschreibung |
---|---|
^ |
Beginnen Sie die Übereinstimmung am Anfang der Zeile. |
[a-zA-Z0-9] |
Entspricht einem einzelnen alphabetischen Zeichen (a bis z oder A bis Z ) oder numerischen Zeichen. |
\d{2} |
Stimmen Sie zwei numerische Zeichen überein. |
[a-zA-Z0-9] |
Entspricht einem einzelnen alphabetischen Zeichen (a bis z oder A bis Z ) oder numerischen Zeichen. |
- |
Stimmen Sie mit einem Bindestrich überein. |
\d{3} |
Entspricht genau drei numerischen Zeichen. |
(-\d{3}){2} |
Suchen Sie einen Bindestrich gefolgt von drei numerischen Zeichen, und stimmen Sie zwei Vorkommen dieses Musters überein. |
[a-zA-Z0-9] |
Entspricht einem einzelnen alphabetischen Zeichen (a bis z oder A bis Z ) oder numerischen Zeichen. |
$ |
Beenden Sie die Übereinstimmung am Ende der Zeile. |
Hinweise
Die IsMatch-Methode wird in der Regel verwendet, um eine Zeichenfolge zu überprüfen oder sicherzustellen, dass eine Zeichenfolge einem bestimmten Muster entspricht, ohne diese Zeichenfolge für nachfolgende Manipulationen abzurufen. Wenn Sie ermitteln möchten, ob eine oder mehrere Zeichenfolgen mit einem Muster für reguläre Ausdrücke übereinstimmen und diese dann für nachfolgende Manipulationen abrufen möchten, rufen Sie die Match- oder Matches-Methode auf.
Die statische IsMatch(String, String)-Methode entspricht dem Erstellen eines Regex Objekts mit dem durch pattern
angegebenen Muster für reguläre Ausdrücke und aufrufen der IsMatch(String) Instanzmethode. Dieses Muster für reguläre Ausdrücke wird für den schnellen Abruf durch das Modul für reguläre Ausdrücke zwischengespeichert.
Der pattern
-Parameter besteht aus Sprachelementen für reguläre Ausdrücke, die die zu übereinstimmende Zeichenfolge symbolisch beschreiben. Weitere Informationen zu regulären Ausdrücken finden Sie unter .NET Regular Expressions und Regular Expression Language – Kurzübersicht.
Die RegexMatchTimeoutException Ausnahme wird ausgelöst, wenn die Ausführungszeit des Abgleichsvorgangs das für die Anwendungsdomäne angegebene Timeoutintervall überschreitet, in dem die Methode aufgerufen wird. Wenn kein Timeout in den Eigenschaften der Anwendungsdomäne definiert ist oder der Timeoutwert Regex.InfiniteMatchTimeoutist, wird keine Ausnahme ausgelöst.
Hinweise für Aufrufer
Diese Methode timeout nach einem Intervall, das dem Standardtimeoutwert der Anwendungsdomäne entspricht, in der die Methode aufgerufen wird. Wenn kein Timeoutwert für die Anwendungsdomäne definiert wurde, wird der Wert InfiniteMatchTimeoutverwendet, wodurch verhindert wird, dass die Methode einen Timeoutzeitpunkt erhält. Die empfohlene statische Methode zum Überprüfen einer Mustervergleichung ist IsMatch(String, String, RegexOptions, TimeSpan), mit der Sie das Timeoutintervall festlegen können.
Weitere Informationen
Gilt für:
IsMatch(ReadOnlySpan<Char>, Int32)
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck eine Übereinstimmung in einer angegebenen Eingabespanne findet.
public:
bool IsMatch(ReadOnlySpan<char> input, int startat);
public bool IsMatch (ReadOnlySpan<char> input, int startat);
member this.IsMatch : ReadOnlySpan<char> * int -> bool
Public Function IsMatch (input As ReadOnlySpan(Of Char), startat As Integer) As Boolean
Parameter
- input
- ReadOnlySpan<Char>
Die Spanne, um nach einer Übereinstimmung zu suchen.
- startat
- Int32
Die nullbasierte Zeichenposition, an der die Suche gestartet werden soll.
Gibt zurück
true
, wenn der reguläre Ausdruck eine Übereinstimmung findet; andernfalls false
.
Ausnahmen
Ein Timeout ist aufgetreten.
Gilt für:
IsMatch(ReadOnlySpan<Char>, String)
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
Gibt an, ob der angegebene reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabespanne findet.
public:
static bool IsMatch(ReadOnlySpan<char> input, System::String ^ pattern);
public static bool IsMatch (ReadOnlySpan<char> input, string pattern);
static member IsMatch : ReadOnlySpan<char> * string -> bool
Public Shared Function IsMatch (input As ReadOnlySpan(Of Char), pattern As String) As Boolean
Parameter
- input
- ReadOnlySpan<Char>
Die Spanne, um nach einer Übereinstimmung zu suchen.
- pattern
- String
Das muster des regulären Ausdrucks, das übereinstimmen soll.
Gibt zurück
true
, wenn der reguläre Ausdruck eine Übereinstimmung findet; andernfalls false
.
Ausnahmen
Es ist ein Fehler beim Analysieren regulärer Ausdrücke aufgetreten.
pattern
ist null
Ein Timeout ist aufgetreten.
Gilt für:
IsMatch(String, Int32)
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet, beginnend mit der angegebenen Anfangsposition in der Zeichenfolge.
public:
bool IsMatch(System::String ^ input, int startat);
public bool IsMatch (string input, int startat);
member this.IsMatch : string * int -> bool
Public Function IsMatch (input As String, startat As Integer) As Boolean
Parameter
- input
- String
Die Zeichenfolge, die nach einer Übereinstimmung gesucht werden soll.
- startat
- Int32
Die Zeichenposition, an der die Suche gestartet werden soll.
Gibt zurück
true
, wenn der reguläre Ausdruck eine Übereinstimmung findet; andernfalls false
.
Ausnahmen
input
ist null
.
startat
ist kleiner als null oder größer als die Länge von input
.
Ein Timeout ist aufgetreten. Weitere Informationen zu Timeouts finden Sie im Abschnitt "Hinweise".
Beispiele
Im folgenden Beispiel wird die Verwendung der IsMatch(String, Int32)-Methode veranschaulicht, um zu bestimmen, ob eine Zeichenfolge eine gültige Teilenummer ist. Es sucht nach einer Teilnummer, die einem Doppelpunkt (:) Zeichen in einer Zeichenfolge folgt. Die IndexOf(Char)-Methode wird verwendet, um die Position des Doppelpunktzeichens zu bestimmen, die dann an die IsMatch(String, Int32)-Methode übergeben wird. Der reguläre Ausdruck geht davon aus, dass die Teilenummer ein bestimmtes Format aufweist, das aus drei Sätzen von Zeichen besteht, die durch Bindestriche getrennt sind. Der erste Satz, der vier Zeichen enthält, muss aus einem alphanumerischen Zeichen bestehen, gefolgt von zwei numerischen Zeichen, gefolgt von einem alphanumerischen Zeichen. Der zweite Satz, der aus drei Zeichen besteht, muss numerisch sein. Der dritte Satz, der aus vier Zeichen besteht, muss drei numerische Zeichen enthalten, gefolgt von einem alphanumerischen Zeichen.
string[] partNumbers = [ "Part Number: 1298-673-4192", "Part No: A08Z-931-468A",
"_A90-123-129X", "123K-000-1230",
"SKU: 0919-2893-1256" ];
Regex rgx = MyRegex();
foreach (string partNumber in partNumbers)
{
int start = partNumber.IndexOf(':');
if (start >= 0)
{
Console.WriteLine($"{partNumber} {(rgx.IsMatch(partNumber, start) ? "is" : "is not")} a valid part number.");
}
else
{
Console.WriteLine("Cannot find starting position in {0}.", partNumber);
}
}
// The example displays the following output:
// Part Number: 1298-673-4192 is a valid part number.
// Part No: A08Z-931-468A is a valid part number.
// Cannot find starting position in _A90-123-129X.
// Cannot find starting position in 123K-000-1230.
// SKU: 0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim partNumbers() As String = { "Part Number: 1298-673-4192", "Part No: A08Z-931-468A", _
"_A90-123-129X", "123K-000-1230", _
"SKU: 0919-2893-1256" }
Dim rgx As New Regex("[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$")
For Each partNumber As String In partNumbers
Dim start As Integer = partNumber.IndexOf(":"c)
If start >= 0 Then
Console.WriteLine("{0} {1} a valid part number.", _
partNumber, _
IIF(rgx.IsMatch(partNumber, start), "is", "is not"))
Else
Console.WriteLine("Cannot find starting position in {0}.", partNumber)
End If
Next
End Sub
End Module
' The example displays the following output:
' Part Number: 1298-673-4192 is a valid part number.
' Part No: A08Z-931-468A is a valid part number.
' Cannot find starting position in _A90-123-129X.
' Cannot find starting position in 123K-000-1230.
' SKU: 0919-2893-1256 is not a valid part number.
Das Muster für reguläre Ausdrücke lautet:
[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$
Die folgende Tabelle zeigt, wie das Muster für reguläre Ausdrücke interpretiert wird.
Muster | Beschreibung |
---|---|
[a-zA-Z0-9] |
Entspricht einem einzelnen alphabetischen Zeichen (a bis z oder A bis Z ) oder numerischen Zeichen. |
\d{2} |
Stimmen Sie zwei numerische Zeichen überein. |
[a-zA-Z0-9] |
Entspricht einem einzelnen alphabetischen Zeichen (a bis z oder A bis Z ) oder numerischen Zeichen. |
- |
Stimmen Sie mit einem Bindestrich überein. |
\d{3} |
Entspricht genau drei numerischen Zeichen. |
(-\d{3}){2} |
Suchen Sie einen Bindestrich gefolgt von drei numerischen Zeichen, und stimmen Sie zwei Vorkommen dieses Musters überein. |
[a-zA-Z0-9] |
Entspricht einem einzelnen alphabetischen Zeichen (a bis z oder A bis Z ) oder numerischen Zeichen. |
$ |
Beenden Sie die Übereinstimmung am Ende der Zeile. |
Hinweise
Die IsMatch-Methode wird in der Regel verwendet, um eine Zeichenfolge zu überprüfen oder sicherzustellen, dass eine Zeichenfolge einem bestimmten Muster entspricht, ohne diese Zeichenfolge für nachfolgende Manipulationen abzurufen. Wenn Sie ermitteln möchten, ob eine oder mehrere Zeichenfolgen mit einem Muster für reguläre Ausdrücke übereinstimmen und diese dann für nachfolgende Manipulationen abrufen möchten, rufen Sie die Match- oder Matches-Methode auf.
Weitere Informationen zu startat
finden Sie im Abschnitt "Hinweise" von Match(String, Int32).
Die RegexMatchTimeoutException Ausnahme wird ausgelöst, wenn die Ausführungszeit des Abgleichsvorgangs das durch den 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 der Timeoutwert Regex.InfiniteMatchTimeoutist, wird keine Ausnahme ausgelöst.
Weitere Informationen
Gilt für:
IsMatch(String)
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck eine Übereinstimmung in einer angegebenen Eingabezeichenfolge findet.
public:
bool IsMatch(System::String ^ input);
public bool IsMatch (string input);
member this.IsMatch : string -> bool
Public Function IsMatch (input As String) As Boolean
Parameter
- input
- String
Die Zeichenfolge, die nach einer Übereinstimmung gesucht werden soll.
Gibt zurück
true
, wenn der reguläre Ausdruck eine Übereinstimmung findet; andernfalls false
.
Ausnahmen
input
ist null
.
Ein Timeout ist aufgetreten. Weitere Informationen zu Timeouts finden Sie im Abschnitt "Hinweise".
Beispiele
Im folgenden Beispiel wird die Verwendung der IsMatch(String)-Methode veranschaulicht, um zu bestimmen, ob eine Zeichenfolge eine gültige Teilenummer ist. Der reguläre Ausdruck geht davon aus, dass die Teilenummer ein bestimmtes Format aufweist, das aus drei Sätzen von Zeichen besteht, die durch Bindestriche getrennt sind. Der erste Satz, der vier Zeichen enthält, muss aus einem alphanumerischen Zeichen bestehen, gefolgt von zwei numerischen Zeichen, gefolgt von einem alphanumerischen Zeichen. Der zweite Satz, der aus drei Zeichen besteht, muss numerisch sein. Der dritte Satz, der aus vier Zeichen besteht, muss drei numerische Zeichen enthalten, gefolgt von einem alphanumerischen Zeichen.
string[] partNumbers = [ "1298-673-4192", "A08Z-931-468A",
"_A90-123-129X", "12345-KKA-1230",
"0919-2893-1256" ];
Regex rgx = new Regex(@"^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$");
foreach (string partNumber in partNumbers)
Console.WriteLine($"{partNumber} {(rgx.IsMatch(partNumber) ? "is" : "is not")} a valid part number.");
// The example displays the following output:
// 1298-673-4192 is a valid part number.
// A08Z-931-468A is a valid part number.
// _A90-123-129X is not a valid part number.
// 12345-KKA-1230 is not a valid part number.
// 0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468A", _
"_A90-123-129X", "12345-KKA-1230", _
"0919-2893-1256" }
Dim rgx As New Regex("^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$")
For Each partNumber As String In partNumbers
Console.WriteLine("{0} {1} a valid part number.", _
partNumber, _
IIF(rgx.IsMatch(partNumber), "is", "is not"))
Next
End Sub
End Module
' The example displays the following output:
' 1298-673-4192 is a valid part number.
' A08Z-931-468A is a valid part number.
' _A90-123-129X is not a valid part number.
' 12345-KKA-1230 is not a valid part number.
' 0919-2893-1256 is not a valid part number.
Das Muster für reguläre Ausdrücke lautet:
^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$
Die folgende Tabelle zeigt, wie das Muster für reguläre Ausdrücke interpretiert wird.
Muster | Beschreibung |
---|---|
^ |
Beginnen Sie die Übereinstimmung am Anfang der Zeile. |
[a-zA-Z0-9] |
Entspricht einem einzelnen alphabetischen Zeichen (a bis z oder A bis Z ) oder numerischen Zeichen. |
\d{2} |
Stimmen Sie zwei numerische Zeichen überein. |
[a-zA-Z0-9] |
Entspricht einem einzelnen alphabetischen Zeichen (a bis z oder A bis Z ) oder numerischen Zeichen. |
- |
Stimmen Sie mit einem Bindestrich überein. |
\d{3} |
Entspricht genau drei numerischen Zeichen. |
(-\d{3}){2} |
Suchen Sie einen Bindestrich gefolgt von drei numerischen Zeichen, und stimmen Sie zwei Vorkommen dieses Musters überein. |
[a-zA-Z0-9] |
Entspricht einem einzelnen alphabetischen Zeichen (a bis z oder A bis Z ) oder numerischen Zeichen. |
$ |
Beenden Sie die Übereinstimmung am Ende der Zeile. |
Hinweise
Die IsMatch-Methode wird in der Regel verwendet, um eine Zeichenfolge zu überprüfen oder sicherzustellen, dass eine Zeichenfolge einem bestimmten Muster entspricht, ohne diese Zeichenfolge für nachfolgende Manipulationen abzurufen. Wenn Sie ermitteln möchten, ob eine oder mehrere Zeichenfolgen mit einem Muster für reguläre Ausdrücke übereinstimmen und diese dann für nachfolgende Manipulationen abrufen möchten, rufen Sie die Match- oder Matches-Methode auf.
Die RegexMatchTimeoutException Ausnahme wird ausgelöst, wenn die Ausführungszeit des Abgleichsvorgangs das durch den 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 der Timeoutwert Regex.InfiniteMatchTimeoutist, wird keine Ausnahme ausgelöst.
Weitere Informationen
Gilt für:
IsMatch(ReadOnlySpan<Char>)
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
- Quelle:
- Regex.Match.cs
Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck eine Übereinstimmung in einer angegebenen Eingabespanne findet.
public:
bool IsMatch(ReadOnlySpan<char> input);
public bool IsMatch (ReadOnlySpan<char> input);
member this.IsMatch : ReadOnlySpan<char> -> bool
Public Function IsMatch (input As ReadOnlySpan(Of Char)) As Boolean
Parameter
- input
- ReadOnlySpan<Char>
Die Spanne, um nach einer Übereinstimmung zu suchen.
Gibt zurück
true
, wenn der reguläre Ausdruck eine Übereinstimmung findet; andernfalls false
.
Ausnahmen
Ein Timeout ist aufgetreten.