Regex.IsMatch Methode

Definition

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 unter Verwendung der angegebenen Übereinstimmungsoptionen und des angegebenen Timeoutintervalls eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet.

IsMatch(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan)

Gibt an, ob der angegebene reguläre Ausdruck unter Verwendung der angegebenen Abgleichsoptionen und des angegebenen Timeoutintervalls eine Übereinstimmung in der angegebenen Eingabespanne findet.

IsMatch(String, String, RegexOptions)

Gibt an, ob der angegebene reguläre Ausdruck unter Verwendung der angegebenen Übereinstimmungsoptionen eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet.

IsMatch(ReadOnlySpan<Char>, String, RegexOptions)

Gibt an, ob der angegebene reguläre Ausdruck unter Verwendung der angegebenen Abgleichsoptionen eine Übereinstimmung in der angegebenen Eingabespanne findet.

IsMatch(String, String)

Gibt an, ob der reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet.

IsMatch(ReadOnlySpan<Char>, String)

Gibt an, ob der angegebene reguläre Ausdruck eine Übereinstimmung in der angegebenen Eingabespanne findet.

IsMatch(ReadOnlySpan<Char>, Int32)

Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck eine Übereinstimmung in einer angegebenen Eingabespanne findet.

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, Int32)

Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck ab der angegebenen Anfangsposition eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet.

IsMatch(String, String, RegexOptions, TimeSpan)

Gibt an, ob der angegebene reguläre Ausdruck unter Verwendung der angegebenen Übereinstimmungsoptionen und des angegebenen Timeoutintervalls eine Übereinstimmung in der angegebenen Eingabezeichenfolge 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 nach einer Übereinstimmung zu durchsuchende Zeichenfolge.

pattern
String

Das Muster eines regulären Ausdrucks, mit dem Übereinstimmungen gefunden werden sollen.

options
RegexOptions

Eine bitweise Kombination der Enumerationswerte, die Optionen für Vergleiche angeben.

matchTimeout
TimeSpan

Ein Timeoutintervall oder InfiniteMatchTimeout, das angibt, dass die Methode kein Timeout haben sollte.

Gibt zurück

true, wenn der reguläre Ausdruck eine Übereinstimmung findet, andernfalls false.

Ausnahmen

Ein Analysefehler für reguläre Ausdrücke ist aufgetreten.

input oder pattern ist null.

options ist kein gültiger RegexOptions -Wert.

- oder -

matchTimeout ist negativ, null oder größer als ca. 24 Tage.

Es ist ein Timeout aufgetreten.

Beispiele

Das folgende Beispiel veranschaulicht die Verwendung der IsMatch(String, String, RegexOptions, TimeSpan) -Methode, um zu bestimmen, ob eine Zeichenfolge eine gültige Teilnummer ist. Der reguläre Ausdruck geht davon aus, dass die Teilenummer ein bestimmtes Format hat, das aus drei durch Bindestrichen getrennten Zeichensätzen besteht. Der erste Satz, der vier Zeichen enthält, muss aus einem alphanumerischen Zeichen gefolgt von zwei numerischen Zeichen gefolgt von einem alphanumerischen Zeichen bestehen. Der zweite Satz, der aus drei Zeichen besteht, muss numerisch sein. Der dritte Satz, der aus vier Zeichen besteht, muss drei numerische Zeichen gefolgt von einem alphanumerischen Zeichen aufweisen. Das Abgleichen des Musters für reguläre Ausdrücke sollte eine minimale Durchsuchung der Eingabezeichenfolge erfordern, sodass die Methode ein Timeoutintervall von 500 Millisekunden festlegt.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      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 {
            Console.WriteLine("{0} {1} a valid part number.", 
                              partNumber, 
                              Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase) 
                                            ? "is" : "is not", TimeSpan.FromMilliseconds(500));
         }
         catch (RegexMatchTimeoutException e) {
            Console.WriteLine("Timeout after {0} seconds matching {1}.",
                              e.MatchTimeout, 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 des regulären Ausdrucks lautet:

^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$

Die folgende Tabelle zeigt, wie das Muster eines regulären Ausdrucks interpretiert wird.

Muster Beschreibung
^ Beginnt die Suche am Anfang der Zeichenfolge.
[A-Z0-9] Übereinstimmung mit jedem einzelnen alphabetischen Zeichen von bis AZoder einem beliebigen numerischen Zeichen.
\d{2} Übereinstimmung mit zwei numerischen Zeichen.
[A-Z0-9] Übereinstimmung mit jedem einzelnen alphabetischen Zeichen von bis AZoder einem beliebigen numerischen Zeichen.
- Entsprechung für einen Bindestrich finden.
\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] Übereinstimmung mit jedem einzelnen alphabetischen Zeichen von bis AZoder einem beliebigen numerischen Zeichen.
$ Beendet die Suche am Ende der Zeichenfolge.

Das Aufrufen der IsMatch(String, String, RegexOptions, TimeSpan) -Methode mit dem Parameter, der options auf RegexOptions.IgnoreCase festgelegt ist, entspricht der Definition des folgenden regulären Ausdrucks:

[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]

Einen 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 zur späteren Bearbeitung abzurufen. Wenn Sie ermitteln möchten, ob eine oder mehrere Zeichenfolgen mit einem Muster für reguläre Ausdrücke übereinstimmen, und sie dann zur nachfolgenden Bearbeitung abrufen möchten, rufen Sie die - oder Matches -MatchMethode auf.

Die statische IsMatch(String, String, RegexOptions, TimeSpan) Methode entspricht dem Erstellen eines Regex Objekts mit dem von angegebenen pattern Muster für reguläre Ausdrücke und den optionen für reguläre Ausdrücke, die von options und dem Aufruf der IsMatch(String) instance-Methode angegeben werden. Dieses Muster für reguläre Ausdrücke wird für den schnellen Abruf durch die Engine für reguläre Ausdrücke zwischengespeichert.

Der pattern Parameter besteht aus Sprachelementen für reguläre Ausdrücke, die die übereinstimmende Zeichenfolge symbolisch beschreiben. Weitere Informationen zu regulären Ausdrücken finden Sie unter .NET Regular Expressions and Regular Expression Language – Kurzreferenz.

Der matchTimeout Parameter gibt an, wie lange eine Musterabgleichsmethode versuchen soll, eine Übereinstimmung zu finden, bevor ein Zeitüberschreitung vorliegt. Das Festlegen eines Timeoutintervalls verhindert, dass reguläre Ausdrücke, die auf übermäßiger Rückverfolgung 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 Rückverfolgung. Wenn in diesem Zeitintervall keine Übereinstimmung gefunden wird, löst die Methode eine Ausnahme aus RegexMatchTimeoutException . 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 deaktivieren, indem Sie angeben InfiniteMatchTimeout, bietet die Engine für reguläre Ausdrücke eine 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. Dies schließt Text aus, der von Benutzern dynamisch eingegeben wurde.

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

  • Wenn das Muster für reguläre Ausdrücke keine Sprachelemente enthält, von denen bekannt ist, dass sie bei der Verarbeitung einer nahen Übereinstimmung eine übermäßige Rückverfolgung verursachen.

Weitere Informationen

Gilt für:

IsMatch(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan)

Gibt an, ob der angegebene reguläre Ausdruck unter Verwendung der angegebenen Abgleichsoptionen und des angegebenen Timeoutintervalls eine Übereinstimmung in der angegebenen Eingabespanne 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, die nach einer Übereinstimmung gesucht werden soll.

pattern
String

Das Muster eines regulären Ausdrucks, mit dem Übereinstimmungen gefunden werden sollen.

options
RegexOptions

Eine bitweise Kombination der Enumerationswerte, die Optionen für Vergleiche angeben.

matchTimeout
TimeSpan

Ein Timeoutintervall oder InfiniteMatchTimeout, das angibt, dass die Methode kein Timeout haben sollte.

Gibt zurück

true, wenn der reguläre Ausdruck eine Übereinstimmung findet, andernfalls false.

Ausnahmen

Ein Analysefehler für reguläre Ausdrücke ist aufgetreten.

pattern ist null.

Es ist ein Timeout aufgetreten.

options ist nicht in einem gültigen RegexOptions Wert oder matchTimeout ist negativ, null oder größer als ca. 24 Tage.

Gilt für:

IsMatch(String, String, RegexOptions)

Gibt an, ob der angegebene reguläre Ausdruck unter Verwendung 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 nach einer Übereinstimmung zu durchsuchende Zeichenfolge.

pattern
String

Das Muster eines regulären Ausdrucks, mit dem Übereinstimmungen gefunden werden sollen.

options
RegexOptions

Eine bitweise Kombination der Enumerationswerte, die Optionen für Vergleiche angeben.

Gibt zurück

true, wenn der reguläre Ausdruck eine Übereinstimmung findet, andernfalls false.

Ausnahmen

Ein Analysefehler für reguläre Ausdrücke ist aufgetreten.

input oder pattern ist null.

options ist kein gültiger RegexOptions -Wert.

Es ist ein Timeout aufgetreten. Weitere Informationen zu Timeouts finden Sie im Abschnitt „Hinweise“.

Beispiele

Das folgende Beispiel veranschaulicht die Verwendung der IsMatch(String, String) -Methode, um zu bestimmen, ob eine Zeichenfolge eine gültige Teilnummer ist. Der reguläre Ausdruck geht davon aus, dass die Teilenummer ein bestimmtes Format hat, das aus drei durch Bindestrichen getrennten Zeichensätzen besteht. Der erste Satz, der vier Zeichen enthält, muss aus einem alphanumerischen Zeichen gefolgt von zwei numerischen Zeichen gefolgt von einem alphanumerischen Zeichen bestehen. Der zweite Satz, der aus drei Zeichen besteht, muss numerisch sein. Der dritte Satz, der aus vier Zeichen besteht, muss drei numerische Zeichen gefolgt von einem alphanumerischen Zeichen aufweisen.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      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 des regulären Ausdrucks lautet:

^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$

Die folgende Tabelle zeigt, wie das Muster eines regulären Ausdrucks interpretiert wird.

Muster Beschreibung
^ Beginnt die Suche am Anfang der Zeichenfolge.
[A-Z0-9] Übereinstimmung mit jedem einzelnen alphabetischen Zeichen von bis AZoder einem beliebigen numerischen Zeichen.
\d{2} Übereinstimmung mit zwei numerischen Zeichen.
[A-Z0-9] Übereinstimmung mit jedem einzelnen alphabetischen Zeichen von A bis Zoder einem beliebigen numerischen Zeichen.
- Entsprechung für einen Bindestrich finden.
\d{3} Entspricht genau drei numerischen Zeichen.
(-\d{3}){2} Suchen von einem Bindestrich gefolgt von drei Ziffern, und zwei Vorkommen dieses Muster übereinstimmen.
[A-Z0-9] Übereinstimmung mit jedem einzelnen alphabetischen Zeichen von A bis Zoder einem beliebigen numerischen Zeichen.
$ Beendet die Suche am Ende der Zeichenfolge.

Das Aufrufen der IsMatch(String, String, RegexOptions) Methode mit festgelegtem options Parameter auf RegexOptions.IgnoreCase 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]

Einen 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 die nachfolgende Bearbeitung abzurufen. Wenn Sie ermitteln möchten, ob eine oder mehrere Zeichenfolgen mit einem Muster für reguläre Ausdrücke übereinstimmen, und sie dann für die nachfolgende Bearbeitung abrufen möchten, rufen Sie die -Methode oder Matches aufMatch.

Die statische IsMatch(String, String, RegexOptions) Methode entspricht dem Erstellen eines Regex Objekts mit dem von pattern angegebenen regulären Ausdrucksmuster und den durch options angegebenen regulären Ausdrucksoptionen und dem Aufrufen der IsMatch(String) instance-Methode. Dieses Muster für reguläre Ausdrücke wird für einen schnellen Abruf durch die Engine für reguläre Ausdrücke zwischengespeichert.

Der pattern Parameter besteht aus Elementen der Regulären Ausdruckssprache, die die übereinstimmende Zeichenfolge symbolisch beschreiben. Weitere Informationen zu regulären Ausdrücken finden Sie unter .NET Regular Expressions and Regular Expression Language – Schnellreferenz.

Die RegexMatchTimeoutException Ausnahme wird ausgelöst, wenn die Ausführungszeit des Abgleichsvorgangs das timeoutintervall überschreitet, das für die Anwendungsdomäne angegeben ist, in der die Methode aufgerufen wird. Wenn in den Eigenschaften der Anwendungsdomäne kein Timeout definiert ist oder wenn der Timeoutwert lautet Regex.InfiniteMatchTimeout, wird keine Ausnahme ausgelöst.

Hinweise für Aufrufer

Bei dieser Methode tritt ein Timeout nach einem Intervall auf, 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 ein Timeout der Methode verhindert. Die empfohlene statische Methode zum Überprüfen einer Musterüberstimmung ist IsMatch(String, String, RegexOptions, TimeSpan), mit der Sie das Timeoutintervall festlegen können.

Weitere Informationen

Gilt für:

IsMatch(ReadOnlySpan<Char>, String, RegexOptions)

Gibt an, ob der angegebene reguläre Ausdruck unter Verwendung der angegebenen Abgleichsoptionen eine Übereinstimmung in der angegebenen Eingabespanne 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 für die Suche nach einer Übereinstimmung.

pattern
String

Das Muster eines regulären Ausdrucks, mit dem Übereinstimmungen gefunden werden sollen.

options
RegexOptions

Eine bitweise Kombination der Enumerationswerte, die Optionen für Vergleiche angeben.

Gibt zurück

true, wenn der reguläre Ausdruck eine Übereinstimmung findet, andernfalls false.

Ausnahmen

Ein Analysefehler für reguläre Ausdrücke ist aufgetreten.

pattern ist null.

Es ist ein Timeout aufgetreten.

options ist nicht in einem gültigen RegexOptions Wert enthalten.

Gilt für:

IsMatch(String, String)

Gibt an, ob der 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 nach einer Übereinstimmung zu durchsuchende Zeichenfolge.

pattern
String

Das Muster eines regulären Ausdrucks, mit dem Übereinstimmungen gefunden werden sollen.

Gibt zurück

true, wenn der reguläre Ausdruck eine Übereinstimmung findet, andernfalls false.

Ausnahmen

Ein Analysefehler für reguläre Ausdrücke ist aufgetreten.

input oder pattern ist null.

Es ist ein Timeout aufgetreten. Weitere Informationen zu Timeouts finden Sie im Abschnitt „Hinweise“.

Beispiele

Das folgende Beispiel veranschaulicht die Verwendung der IsMatch(String, String) -Methode, um zu bestimmen, ob eine Zeichenfolge eine gültige Teilenummer ist. Der reguläre Ausdruck geht davon aus, dass die Teilenummer ein bestimmtes Format hat, das aus drei durch Bindestrichen getrennten Zeichensätzen besteht. Der erste Satz, der vier Zeichen enthält, muss aus einem alphanumerischen Zeichen gefolgt von zwei numerischen Zeichen gefolgt von einem alphanumerischen Zeichen bestehen. Der zweite Satz, der aus drei Zeichen besteht, muss numerisch sein. Der dritte Satz, der aus vier Zeichen besteht, muss aus drei numerischen Zeichen gefolgt von einem alphanumerischen Zeichen bestehen.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      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("{0} {1} a valid part number.", 
                           partNumber, 
                           Regex.IsMatch(partNumber, pattern) ? "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-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 des regulären Ausdrucks 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 eines regulären Ausdrucks interpretiert wird.

Muster BESCHREIBUNG
^ Beginnen Sie die Übereinstimmung am Anfang der Zeile.
[a-zA-Z0-9] Entspricht einem einzelnen alphabetischen Zeichen (a durch z oder A durch Z) oder einem numerischen Zeichen.
\d{2} Übereinstimmung mit zwei numerischen Zeichen.
[a-zA-Z0-9] Entspricht einem einzelnen alphabetischen Zeichen (a durch z oder A durch Z) oder einem numerischen Zeichen.
- Entsprechung für einen Bindestrich finden.
\d{3} Entspricht genau drei numerischen Zeichen.
(-\d{3}){2} Suchen Sie einen Bindestrich gefolgt von drei numerischen Zeichen, und entsprechen Sie zwei Vorkommen dieses Musters.
[a-zA-Z0-9] Entspricht einem einzelnen alphabetischen Zeichen (a durch z oder A durch Z) oder einem 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 die nachfolgende Bearbeitung abzurufen. Wenn Sie ermitteln möchten, ob eine oder mehrere Zeichenfolgen mit einem Muster für reguläre Ausdrücke übereinstimmen, und sie dann für die nachfolgende Bearbeitung abrufen möchten, rufen Sie die -Methode oder Matches aufMatch.

Die statische IsMatch(String, String) Methode entspricht dem Erstellen eines Regex Objekts mit dem von angegebenen pattern regulären Ausdrucksmuster und dem Aufrufen der IsMatch(String) instance-Methode. Dieses Muster für reguläre Ausdrücke wird für einen schnellen Abruf durch die Engine für reguläre Ausdrücke zwischengespeichert.

Der pattern Parameter besteht aus Elementen der Regulären Ausdruckssprache, die die übereinstimmende Zeichenfolge symbolisch beschreiben. Weitere Informationen zu regulären Ausdrücken finden Sie unter .NET Regular Expressions and Regular Expression Language – Schnellreferenz.

Die RegexMatchTimeoutException Ausnahme wird ausgelöst, wenn die Ausführungszeit des Abgleichsvorgangs das timeoutintervall überschreitet, das für die Anwendungsdomäne angegeben ist, in der die Methode aufgerufen wird. Wenn in den Eigenschaften der Anwendungsdomäne kein Timeout definiert ist oder wenn der Timeoutwert lautet Regex.InfiniteMatchTimeout, wird keine Ausnahme ausgelöst.

Hinweise für Aufrufer

Bei dieser Methode tritt ein Timeout nach einem Intervall auf, das dem Standard-Timeoutwert der Anwendungsdomäne entspricht, in der die Methode aufgerufen wird. Wenn kein Timeoutwert für die Anwendungsdomäne definiert wurde, wird der Wert InfiniteMatchTimeoutverwendet, der verhindert, dass die Methode ein Timeout ausgibt. Die empfohlene statische Methode zum Überprüfen einer Musterüberstimmung ist IsMatch(String, String, RegexOptions, TimeSpan), mit der Sie das Timeoutintervall festlegen können.

Weitere Informationen

Gilt für:

IsMatch(ReadOnlySpan<Char>, String)

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 für die Suche nach einer Übereinstimmung.

pattern
String

Das Muster eines regulären Ausdrucks, mit dem Übereinstimmungen gefunden werden sollen.

Gibt zurück

true, wenn der reguläre Ausdruck eine Übereinstimmung findet, andernfalls false.

Ausnahmen

Ein Analysefehler für reguläre Ausdrücke ist aufgetreten.

pattern ist null.

Es ist ein Timeout aufgetreten.

Gilt für:

IsMatch(ReadOnlySpan<Char>, Int32)

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 für die Suche nach einer Übereinstimmung.

startat
Int32

Die nullbasierte Zeichenposition, an der mit der Suche begonnen werden soll.

Gibt zurück

true, wenn der reguläre Ausdruck eine Übereinstimmung findet, andernfalls false.

Ausnahmen

Es ist ein Timeout aufgetreten.

Gilt für:

IsMatch(String)

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 nach einer Übereinstimmung zu durchsuchende Zeichenfolge.

Gibt zurück

true, wenn der reguläre Ausdruck eine Übereinstimmung findet, andernfalls false.

Ausnahmen

input ist null.

Es ist ein Timeout aufgetreten. Weitere Informationen zu Timeouts finden Sie im Abschnitt „Hinweise“.

Beispiele

Das folgende Beispiel veranschaulicht die Verwendung der IsMatch(String) -Methode, um zu bestimmen, ob eine Zeichenfolge eine gültige Teilenummer ist. Der reguläre Ausdruck geht davon aus, dass die Teilenummer ein bestimmtes Format hat, das aus drei durch Bindestrichen getrennten Zeichensätzen besteht. Der erste Satz, der vier Zeichen enthält, muss aus einem alphanumerischen Zeichen gefolgt von zwei numerischen Zeichen gefolgt von einem alphanumerischen Zeichen bestehen. Der zweite Satz, der aus drei Zeichen besteht, muss numerisch sein. Der dritte Satz, der aus vier Zeichen besteht, muss aus drei numerischen Zeichen gefolgt von einem alphanumerischen Zeichen bestehen.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      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("{0} {1} a valid part number.", 
                           partNumber, 
                           rgx.IsMatch(partNumber) ? "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 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 des regulären Ausdrucks 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 eines regulären Ausdrucks interpretiert wird.

Muster BESCHREIBUNG
^ Beginnen Sie die Übereinstimmung am Anfang der Zeile.
[a-zA-Z0-9] Entspricht einem einzelnen alphabetischen Zeichen (a durch z oder A durch Z) oder einem numerischen Zeichen.
\d{2} Übereinstimmung mit zwei numerischen Zeichen.
[a-zA-Z0-9] Entspricht einem einzelnen alphabetischen Zeichen (a durch z oder A durch Z) oder einem numerischen Zeichen.
- Entsprechung für einen Bindestrich finden.
\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-zA-Z0-9] Übereinstimmung mit einem einzelnen alphabetischen Zeichen (a durch z oder A durch 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 zur späteren Bearbeitung abzurufen. Wenn Sie ermitteln möchten, ob eine oder mehrere Zeichenfolgen mit einem Muster für reguläre Ausdrücke übereinstimmen, und sie dann zur nachfolgenden Bearbeitung abrufen möchten, rufen Sie die - oder Matches -MatchMethode auf.

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 im Konstruktoraufruf oder in den Eigenschaften der Regex Anwendungsdomäne kein Timeout definiert ist oder wenn der Timeoutwert ist Regex.InfiniteMatchTimeout, wird keine Ausnahme ausgelöst.

Weitere Informationen

Gilt für:

IsMatch(ReadOnlySpan<Char>)

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, die nach einer Übereinstimmung gesucht werden soll.

Gibt zurück

true, wenn der reguläre Ausdruck eine Übereinstimmung findet, andernfalls false.

Ausnahmen

Es ist ein Timeout aufgetreten.

Gilt für:

IsMatch(String, Int32)

Gibt an, ob der im Regex-Konstruktor angegebene reguläre Ausdruck ab der angegebenen Anfangsposition eine Übereinstimmung in der angegebenen Eingabezeichenfolge findet.

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 nach einer Übereinstimmung zu durchsuchende Zeichenfolge.

startat
Int32

Die Zeichenposition, an der mit der Suche begonnen werden soll.

Gibt zurück

true, wenn der reguläre Ausdruck eine Übereinstimmung findet, andernfalls false.

Ausnahmen

input ist null.

startat ist kleiner als 0 (null) oder größer als die Länge von input.

Es ist ein Timeout aufgetreten. Weitere Informationen zu Timeouts finden Sie im Abschnitt „Hinweise“.

Beispiele

Das folgende Beispiel veranschaulicht die Verwendung der IsMatch(String, Int32) -Methode, um zu bestimmen, ob eine Zeichenfolge eine gültige Teilnummer ist. Es sucht nach einer Teilenummer, die einem Doppelpunkt folgt (:) Zeichen in einer Zeichenfolge. Die IndexOf(Char) -Methode wird verwendet, um die Position des Doppelpunktzeichens zu bestimmen, das dann an die IsMatch(String, Int32) -Methode übergeben wird. Der reguläre Ausdruck geht davon aus, dass die Teilenummer ein bestimmtes Format hat, das aus drei durch Bindestrichen getrennten Zeichensätzen besteht. Der erste Satz, der vier Zeichen enthält, muss aus einem alphanumerischen Zeichen gefolgt von zwei numerischen Zeichen gefolgt von einem alphanumerischen Zeichen bestehen. Der zweite Satz, der aus drei Zeichen besteht, muss numerisch sein. Der dritte Satz, der aus vier Zeichen besteht, muss drei numerische Zeichen gefolgt von einem alphanumerischen Zeichen aufweisen.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] partNumbers= { "Part Number: 1298-673-4192", "Part No: A08Z-931-468A", 
                              "_A90-123-129X", "123K-000-1230", 
                              "SKU: 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)
      {
         int start = partNumber.IndexOf(':');
         if (start >= 0)
         {
            Console.WriteLine("{0} {1} a valid part number.", 
                              partNumber, 
                              rgx.IsMatch(partNumber, start) ? "is" : "is not");
         }
         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 des regulären Ausdrucks 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 eines regulären Ausdrucks interpretiert wird.

Muster BESCHREIBUNG
[a-zA-Z0-9] Übereinstimmung mit einem einzelnen alphabetischen Zeichen (a durch z oder A durch Z) oder numerischen Zeichen.
\d{2} Übereinstimmung mit zwei numerischen Zeichen.
[a-zA-Z0-9] Übereinstimmung mit einem einzelnen alphabetischen Zeichen (a durch z oder A durch Z) oder numerischen Zeichen.
- Entsprechung für einen Bindestrich finden.
\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-zA-Z0-9] Übereinstimmung mit einem einzelnen alphabetischen Zeichen (a durch z oder A durch 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 zur späteren Bearbeitung abzurufen. Wenn Sie ermitteln möchten, ob eine oder mehrere Zeichenfolgen mit einem Muster für reguläre Ausdrücke übereinstimmen, und sie dann zur nachfolgenden Bearbeitung abrufen möchten, rufen Sie die - oder Matches -MatchMethode auf.

Weitere Informationen zu startatfinden Sie im Abschnitt Hinweise von Match(String, Int32).

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 im Konstruktoraufruf oder in den Eigenschaften der Regex Anwendungsdomäne kein Timeout definiert ist oder wenn der Timeoutwert ist Regex.InfiniteMatchTimeout, wird keine Ausnahme ausgelöst.

Weitere Informationen

Gilt für: