Udostępnij za pośrednictwem


Regex.IsMatch Metoda

Definicja

Wskazuje, czy wyrażenie regularne znajduje dopasowanie w ciągu wejściowym.

Przeciążenia

IsMatch(String, String, RegexOptions, TimeSpan)

Wskazuje, czy określone wyrażenie regularne znajduje dopasowanie w określonym ciągu wejściowym przy użyciu określonych opcji dopasowania i interwału limitu czasu.

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

Wskazuje, czy określone wyrażenie regularne znajduje dopasowanie w określonym zakresie wejściowym przy użyciu określonych opcji dopasowania i interwału limitu czasu.

IsMatch(String, String, RegexOptions)

Wskazuje, czy określone wyrażenie regularne znajduje dopasowanie w określonym ciągu wejściowym przy użyciu określonych opcji dopasowania.

IsMatch(ReadOnlySpan<Char>, String, RegexOptions)

Wskazuje, czy określone wyrażenie regularne znajduje dopasowanie w określonym zakresie wejściowym przy użyciu określonych opcji dopasowania.

IsMatch(String, String)

Wskazuje, czy określone wyrażenie regularne znajduje dopasowanie w określonym ciągu wejściowym.

IsMatch(ReadOnlySpan<Char>, Int32)

Wskazuje, czy wyrażenie regularne określone w konstruktorze wyrażeń regularnych znajduje dopasowanie w określonym zakresie wejściowym.

IsMatch(ReadOnlySpan<Char>, String)

Wskazuje, czy określone wyrażenie regularne znajduje dopasowanie w określonym zakresie wejściowym.

IsMatch(String, Int32)

Wskazuje, czy wyrażenie regularne określone w konstruktorze Regex znajduje dopasowanie w określonym ciągu wejściowym, zaczynając od określonej pozycji początkowej w ciągu.

IsMatch(String)

Wskazuje, czy wyrażenie regularne określone w konstruktorze Regex znajduje dopasowanie w określonym ciągu wejściowym.

IsMatch(ReadOnlySpan<Char>)

Wskazuje, czy wyrażenie regularne określone w konstruktorze wyrażeń regularnych znajduje dopasowanie w określonym zakresie wejściowym.

IsMatch(String, String, RegexOptions, TimeSpan)

Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs

Wskazuje, czy określone wyrażenie regularne znajduje dopasowanie w określonym ciągu wejściowym przy użyciu określonych opcji dopasowania i interwału limitu czasu.

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

Parametry

input
String

Ciąg do wyszukiwania dopasowania.

pattern
String

Wzorzec wyrażenia regularnego do dopasowania.

options
RegexOptions

Bitowa kombinacja wartości wyliczenia, które zapewniają opcje dopasowania.

matchTimeout
TimeSpan

Interwał limitu czasu lub InfiniteMatchTimeout wskazujący, że metoda nie powinna upłynął limit czasu.

Zwraca

true, jeśli wyrażenie regularne znajdzie dopasowanie; w przeciwnym razie false.

Wyjątki

Wystąpił błąd analizowania wyrażeń regularnych.

input lub pattern jest null.

options nie jest prawidłową wartością RegexOptions.

-lub-

matchTimeout jest ujemna, zero lub większa niż około 24 dni.

Wystąpił limit czasu.

Przykłady

Poniższy przykład ilustruje użycie metody IsMatch(String, String, RegexOptions, TimeSpan) w celu określenia, czy ciąg jest prawidłowym numerem części. Wyrażenie regularne zakłada, że numer części ma określony format składający się z trzech zestawów znaków rozdzielonych łącznikami. Pierwszy zestaw, który zawiera cztery znaki, musi składać się z znaku alfanumerycznego, a następnie dwóch znaków liczbowych, po których następuje znak alfanumeryczny. Drugi zestaw, który składa się z trzech znaków, musi być numeryczny. Trzeci zestaw, który składa się z czterech znaków, musi zawierać trzy znaki liczbowe, po których następuje znak alfanumeryczny. Dopasowanie wzorca wyrażenia regularnego powinno obejmować minimalne wyszukiwanie w ciągu wejściowym, dlatego metoda ustawia interwał limitu czasu wynoszący 500 milisekund.

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.

Wzorzec wyrażenia regularnego to:

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

W poniższej tabeli przedstawiono sposób interpretowania wzorca wyrażenia regularnego.

Deseń Opis
^ Rozpocznij dopasowanie na początku ciągu.
[A-Z0-9] Dopasuj dowolny pojedynczy znak alfabetyczny z A przez Zlub dowolny znak liczbowy.
\d{2} Dopasuj dwa znaki liczbowe.
[A-Z0-9] Dopasuj dowolny pojedynczy znak alfabetyczny z A przez Zlub dowolny znak liczbowy.
- Dopasuj łącznik.
\d{3} Dopasuj dokładnie trzy znaki liczbowe.
(-\d{3}){2} Znajdź łącznik z trzema znakami liczbowymi i dopasuj dwa wystąpienia tego wzorca.
[A-Z0-9] Dopasuj dowolny pojedynczy znak alfabetyczny z A przez Zlub dowolny znak liczbowy.
$ Zakończ dopasowanie na końcu ciągu.

Wywołanie metody IsMatch(String, String, RegexOptions, TimeSpan) przy użyciu parametru options ustawionego na RegexOptions.IgnoreCase jest równoważne zdefiniowaniu następującego wyrażenia regularnego:

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

Aby uzyskać porównanie, zobacz przykład metody IsMatch(String, String).

Uwagi

Metoda IsMatch jest zwykle używana do sprawdzania poprawności ciągu lub zapewnienia, że ciąg jest zgodny z określonym wzorcem bez pobierania tego ciągu w celu późniejszego manipulowania. Jeśli chcesz określić, czy jeden lub więcej ciągów jest zgodny ze wzorcem wyrażenia regularnego, a następnie pobrać je do kolejnej manipulacji, wywołaj metodę Match lub Matches.

Metoda statyczna IsMatch(String, String, RegexOptions, TimeSpan) jest równoważna konstruowaniu obiektu Regex ze wzorcem wyrażenia regularnego określonego przez pattern oraz opcjami wyrażeń regularnych określonych przez options i wywoływaniem metody wystąpienia IsMatch(String). Ten wzorzec wyrażenia regularnego jest buforowany w celu szybkiego pobierania przez aparat wyrażeń regularnych.

Parametr pattern składa się z elementów języka wyrażeń regularnych, które symbolicznie opisują ciąg do dopasowania. Aby uzyskać więcej informacji na temat wyrażeń regularnych, zobacz .NET Regular Expressions and Regular Expression Language — Quick Reference.

Parametr matchTimeout określa, jak długo metoda dopasowania wzorca powinna próbować znaleźć dopasowanie przed upływem limitu czasu. Ustawienie interwału limitu czasu zapobiega wyrażeniom regularnym, które polegają na nadmiernym wycofywaniu, aby przestać odpowiadać podczas przetwarzania danych wejściowych, które zawierają niemal dopasowania. Aby uzyskać więcej informacji, zobacz Best Practices for Regular Expressions and Backtracking. Jeśli w tym interwale czasu nie znaleziono dopasowania, metoda zgłasza wyjątek RegexMatchTimeoutException. matchTimeout zastępuje domyślną wartość limitu czasu zdefiniowaną dla domeny aplikacji, w której jest wykonywana metoda.

Uwagi dotyczące wywoływania

Zalecamy ustawienie parametru matchTimeout na odpowiednią wartość, na przykład dwie sekundy. Jeśli wyłączysz limity czasu, określając InfiniteMatchTimeout, aparat wyrażeń regularnych zapewnia nieco lepszą wydajność. Należy jednak wyłączyć limity czasu tylko w następujących warunkach:

  • Gdy dane wejściowe przetwarzane przez wyrażenie regularne pochodzą ze znanego i zaufanego źródła lub składa się z tekstu statycznego. Wyklucza to tekst, który został dynamicznie wprowadzany przez użytkowników.

  • Gdy wzorzec wyrażenia regularnego został dokładnie przetestowany w celu zapewnienia, że efektywnie obsługuje dopasowania, niezgodne i bliskie dopasowania.

  • Gdy wzorzec wyrażenia regularnego nie zawiera żadnych elementów języka, które są znane, aby powodować nadmierne wycofywanie podczas przetwarzania niemal zgodnego.

Zobacz też

Dotyczy

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

Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs

Wskazuje, czy określone wyrażenie regularne znajduje dopasowanie w określonym zakresie wejściowym przy użyciu określonych opcji dopasowania i interwału limitu czasu.

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

Parametry

input
ReadOnlySpan<Char>

Zakres wyszukiwania dopasowania.

pattern
String

Wzorzec wyrażenia regularnego do dopasowania.

options
RegexOptions

Bitowa kombinacja wartości wyliczenia, które zapewniają opcje dopasowania.

matchTimeout
TimeSpan

Interwał limitu czasu lub InfiniteMatchTimeout wskazujący, że metoda nie powinna upłynął limit czasu.

Zwraca

true, jeśli wyrażenie regularne znajdzie dopasowanie; w przeciwnym razie false.

Wyjątki

Wystąpił błąd analizowania wyrażeń regularnych.

pattern jest null

Wystąpił limit czasu.

options nie znajduje się w prawidłowej wartości RegexOptions lub matchTimeout jest ujemna, zero lub większa niż około 24 dni.

Dotyczy

IsMatch(String, String, RegexOptions)

Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs

Wskazuje, czy określone wyrażenie regularne znajduje dopasowanie w określonym ciągu wejściowym przy użyciu określonych opcji dopasowania.

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

Parametry

input
String

Ciąg do wyszukiwania dopasowania.

pattern
String

Wzorzec wyrażenia regularnego do dopasowania.

options
RegexOptions

Bitowa kombinacja wartości wyliczenia, które zapewniają opcje dopasowania.

Zwraca

true, jeśli wyrażenie regularne znajdzie dopasowanie; w przeciwnym razie false.

Wyjątki

Wystąpił błąd analizowania wyrażeń regularnych.

input lub pattern jest null.

options nie jest prawidłową wartością RegexOptions.

Wystąpił limit czasu. Aby uzyskać więcej informacji na temat limitów czasu, zobacz sekcję Uwagi.

Przykłady

Poniższy przykład ilustruje użycie metody IsMatch(String, String) w celu określenia, czy ciąg jest prawidłowym numerem części. Wyrażenie regularne zakłada, że numer części ma określony format składający się z trzech zestawów znaków rozdzielonych łącznikami. Pierwszy zestaw, który zawiera cztery znaki, musi składać się z znaku alfanumerycznego, a następnie dwóch znaków liczbowych, po których następuje znak alfanumeryczny. Drugi zestaw, który składa się z trzech znaków, musi być numeryczny. Trzeci zestaw, który składa się z czterech znaków, musi zawierać trzy znaki liczbowe, po których następuje znak alfanumeryczny.

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.

Wzorzec wyrażenia regularnego to:

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

W poniższej tabeli przedstawiono sposób interpretowania wzorca wyrażenia regularnego.

Deseń Opis
^ Rozpocznij dopasowanie na początku ciągu.
[A-Z0-9] Dopasuj dowolny pojedynczy znak alfabetyczny z A przez Zlub dowolny znak liczbowy.
\d{2} Dopasuj dwa znaki liczbowe.
[A-Z0-9] Dopasuj dowolny pojedynczy znak alfabetyczny z A przez Zlub dowolny znak liczbowy.
- Dopasuj łącznik.
\d{3} Dopasuj dokładnie trzy znaki liczbowe.
(-\d{3}){2} Znajdź łącznik z trzema znakami liczbowymi i dopasuj dwa wystąpienia tego wzorca.
[A-Z0-9] Dopasuj dowolny pojedynczy znak alfabetyczny z A przez Zlub dowolny znak liczbowy.
$ Zakończ dopasowanie na końcu ciągu.

Wywołanie metody IsMatch(String, String, RegexOptions) przy użyciu parametru options ustawionego na RegexOptions.IgnoreCase jest równoważne zdefiniowaniu następującego wyrażenia regularnego:

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

Aby uzyskać porównanie, zobacz przykład metody IsMatch(String, String).

Uwagi

Metoda IsMatch jest zwykle używana do sprawdzania poprawności ciągu lub zapewnienia, że ciąg jest zgodny z określonym wzorcem bez pobierania tego ciągu w celu późniejszego manipulowania. Jeśli chcesz określić, czy jeden lub więcej ciągów jest zgodny ze wzorcem wyrażenia regularnego, a następnie pobrać je do kolejnej manipulacji, wywołaj metodę Match lub Matches.

Metoda statyczna IsMatch(String, String, RegexOptions) jest równoważna konstruowaniu obiektu Regex ze wzorcem wyrażenia regularnego określonego przez pattern oraz opcjami wyrażeń regularnych określonych przez options i wywoływaniem metody wystąpienia IsMatch(String). Ten wzorzec wyrażenia regularnego jest buforowany w celu szybkiego pobierania przez aparat wyrażeń regularnych.

Parametr pattern składa się z elementów języka wyrażeń regularnych, które symbolicznie opisują ciąg do dopasowania. Aby uzyskać więcej informacji na temat wyrażeń regularnych, zobacz .NET Regular Expressions and Regular Expression Language — Quick Reference.

Wyjątek RegexMatchTimeoutException jest zgłaszany, jeśli czas wykonywania pasującej operacji przekracza interwał limitu czasu określony dla domeny aplikacji, w której jest wywoływana metoda. Jeśli w właściwościach domeny aplikacji nie zdefiniowano limitu czasu lub jeśli wartość limitu czasu jest Regex.InfiniteMatchTimeout, nie jest zgłaszany żaden wyjątek.

Uwagi dotyczące wywoływania

Ta metoda powoduje przekroczenie limitu czasu po interwale równym domyślnej wartości limitu czasu domeny aplikacji, w której jest wywoływana. Jeśli dla domeny aplikacji nie zdefiniowano wartości limitu czasu, zostanie użyta wartość InfiniteMatchTimeout, która uniemożliwia przekroczenie limitu czasu metody. Zalecaną metodą statyczną sprawdzania dopasowania wzorca jest IsMatch(String, String, RegexOptions, TimeSpan), co pozwala ustawić interwał limitu czasu.

Zobacz też

Dotyczy

IsMatch(ReadOnlySpan<Char>, String, RegexOptions)

Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs

Wskazuje, czy określone wyrażenie regularne znajduje dopasowanie w określonym zakresie wejściowym przy użyciu określonych opcji dopasowania.

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

Parametry

input
ReadOnlySpan<Char>

Zakres wyszukiwania dopasowania.

pattern
String

Wzorzec wyrażenia regularnego do dopasowania.

options
RegexOptions

Bitowa kombinacja wartości wyliczenia, które zapewniają opcje dopasowania.

Zwraca

true, jeśli wyrażenie regularne znajdzie dopasowanie; w przeciwnym razie false.

Wyjątki

Wystąpił błąd analizowania wyrażeń regularnych.

pattern jest null

Wystąpił limit czasu.

options nie znajduje się w prawidłowej wartości RegexOptions.

Dotyczy

IsMatch(String, String)

Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs

Wskazuje, czy określone wyrażenie regularne znajduje dopasowanie w określonym ciągu wejściowym.

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

Parametry

input
String

Ciąg do wyszukiwania dopasowania.

pattern
String

Wzorzec wyrażenia regularnego do dopasowania.

Zwraca

true, jeśli wyrażenie regularne znajdzie dopasowanie; w przeciwnym razie false.

Wyjątki

Wystąpił błąd analizowania wyrażeń regularnych.

input lub pattern jest null.

Wystąpił limit czasu. Aby uzyskać więcej informacji na temat limitów czasu, zobacz sekcję Uwagi.

Przykłady

Poniższy przykład ilustruje użycie metody IsMatch(String, String) w celu określenia, czy ciąg jest prawidłowym numerem części. Wyrażenie regularne zakłada, że numer części ma określony format składający się z trzech zestawów znaków rozdzielonych łącznikami. Pierwszy zestaw, który zawiera cztery znaki, musi składać się z znaku alfanumerycznego, a następnie dwóch znaków liczbowych, po których następuje znak alfanumeryczny. Drugi zestaw, który składa się z trzech znaków, musi być numeryczny. Trzeci zestaw, który składa się z czterech znaków, musi zawierać trzy znaki liczbowe, po których następuje znak alfanumeryczny.

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.

Wzorzec wyrażenia regularnego to:

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

W poniższej tabeli przedstawiono sposób interpretowania wzorca wyrażenia regularnego.

Deseń Opis
^ Rozpocznij dopasowanie na początku wiersza.
[a-zA-Z0-9] Dopasuj pojedynczy znak alfabetyczny (a przez z lub A przez Z) lub znak liczbowy.
\d{2} Dopasuj dwa znaki liczbowe.
[a-zA-Z0-9] Dopasuj pojedynczy znak alfabetyczny (a przez z lub A przez Z) lub znak liczbowy.
- Dopasuj łącznik.
\d{3} Dopasuj dokładnie trzy znaki liczbowe.
(-\d{3}){2} Znajdź łącznik z trzema znakami liczbowymi i dopasuj dwa wystąpienia tego wzorca.
[a-zA-Z0-9] Dopasuj pojedynczy znak alfabetyczny (a przez z lub A przez Z) lub znak liczbowy.
$ Zakończ dopasowanie na końcu wiersza.

Uwagi

Metoda IsMatch jest zwykle używana do sprawdzania poprawności ciągu lub zapewnienia, że ciąg jest zgodny z określonym wzorcem bez pobierania tego ciągu w celu późniejszego manipulowania. Jeśli chcesz określić, czy jeden lub więcej ciągów jest zgodny ze wzorcem wyrażenia regularnego, a następnie pobrać je do kolejnej manipulacji, wywołaj metodę Match lub Matches.

Metoda statyczna IsMatch(String, String) jest równoważna konstruowaniu obiektu Regex ze wzorcem wyrażenia regularnego określonego przez pattern i wywoływania metody wystąpienia IsMatch(String). Ten wzorzec wyrażenia regularnego jest buforowany w celu szybkiego pobierania przez aparat wyrażeń regularnych.

Parametr pattern składa się z elementów języka wyrażeń regularnych, które symbolicznie opisują ciąg do dopasowania. Aby uzyskać więcej informacji na temat wyrażeń regularnych, zobacz .NET Regular Expressions and Regular Expression Language — Quick Reference.

Wyjątek RegexMatchTimeoutException jest zgłaszany, jeśli czas wykonywania pasującej operacji przekracza interwał limitu czasu określony dla domeny aplikacji, w której jest wywoływana metoda. Jeśli w właściwościach domeny aplikacji nie zdefiniowano limitu czasu lub jeśli wartość limitu czasu jest Regex.InfiniteMatchTimeout, nie jest zgłaszany żaden wyjątek.

Uwagi dotyczące wywoływania

Ta metoda powoduje przekroczenie limitu czasu po interwale równym domyślnej wartości limitu czasu domeny aplikacji, w której jest wywoływana metoda. Jeśli dla domeny aplikacji nie zdefiniowano wartości limitu czasu, zostanie użyta wartość InfiniteMatchTimeout, która uniemożliwia przekroczenie limitu czasu metody. Zalecaną metodą statyczną sprawdzania dopasowania wzorca jest IsMatch(String, String, RegexOptions, TimeSpan), co pozwala ustawić interwał limitu czasu.

Zobacz też

Dotyczy

IsMatch(ReadOnlySpan<Char>, Int32)

Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs

Wskazuje, czy wyrażenie regularne określone w konstruktorze wyrażeń regularnych znajduje dopasowanie w określonym zakresie wejściowym.

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

Parametry

input
ReadOnlySpan<Char>

Zakres wyszukiwania dopasowania.

startat
Int32

Położenie znaku opartego na zerach, w którym należy rozpocząć wyszukiwanie.

Zwraca

true, jeśli wyrażenie regularne znajdzie dopasowanie; w przeciwnym razie false.

Wyjątki

Wystąpił limit czasu.

Dotyczy

IsMatch(ReadOnlySpan<Char>, String)

Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs

Wskazuje, czy określone wyrażenie regularne znajduje dopasowanie w określonym zakresie wejściowym.

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

Parametry

input
ReadOnlySpan<Char>

Zakres wyszukiwania dopasowania.

pattern
String

Wzorzec wyrażenia regularnego do dopasowania.

Zwraca

true, jeśli wyrażenie regularne znajdzie dopasowanie; w przeciwnym razie false.

Wyjątki

Wystąpił błąd analizowania wyrażeń regularnych.

pattern jest null

Wystąpił limit czasu.

Dotyczy

IsMatch(String, Int32)

Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs

Wskazuje, czy wyrażenie regularne określone w konstruktorze Regex znajduje dopasowanie w określonym ciągu wejściowym, zaczynając od określonej pozycji początkowej w ciągu.

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

Parametry

input
String

Ciąg do wyszukiwania dopasowania.

startat
Int32

Położenie znaku, w którym ma być uruchamiane wyszukiwanie.

Zwraca

true, jeśli wyrażenie regularne znajdzie dopasowanie; w przeciwnym razie false.

Wyjątki

input jest null.

startat jest mniejsza niż zero lub większa niż długość input.

Wystąpił limit czasu. Aby uzyskać więcej informacji na temat limitów czasu, zobacz sekcję Uwagi.

Przykłady

Poniższy przykład ilustruje użycie metody IsMatch(String, Int32) w celu określenia, czy ciąg jest prawidłowym numerem części. Wyszukuje numer części, który jest zgodny z dwukropkiem (:) znakiem w ciągu. Metoda IndexOf(Char) służy do określania położenia znaku dwukropka, który następnie jest przekazywany do metody IsMatch(String, Int32). Wyrażenie regularne zakłada, że numer części ma określony format składający się z trzech zestawów znaków rozdzielonych łącznikami. Pierwszy zestaw, który zawiera cztery znaki, musi składać się z znaku alfanumerycznego, a następnie dwóch znaków liczbowych, po których następuje znak alfanumeryczny. Drugi zestaw, który składa się z trzech znaków, musi być numeryczny. Trzeci zestaw, który składa się z czterech znaków, musi zawierać trzy znaki liczbowe, po których następuje znak alfanumeryczny.

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.

Wzorzec wyrażenia regularnego to:

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

W poniższej tabeli przedstawiono sposób interpretowania wzorca wyrażenia regularnego.

Deseń Opis
[a-zA-Z0-9] Dopasuj pojedynczy znak alfabetyczny (a przez z lub A przez Z) lub znak liczbowy.
\d{2} Dopasuj dwa znaki liczbowe.
[a-zA-Z0-9] Dopasuj pojedynczy znak alfabetyczny (a przez z lub A przez Z) lub znak liczbowy.
- Dopasuj łącznik.
\d{3} Dopasuj dokładnie trzy znaki liczbowe.
(-\d{3}){2} Znajdź łącznik z trzema znakami liczbowymi i dopasuj dwa wystąpienia tego wzorca.
[a-zA-Z0-9] Dopasuj pojedynczy znak alfabetyczny (a przez z lub A przez Z) lub znak liczbowy.
$ Zakończ dopasowanie na końcu wiersza.

Uwagi

Metoda IsMatch jest zwykle używana do sprawdzania poprawności ciągu lub zapewnienia, że ciąg jest zgodny z określonym wzorcem bez pobierania tego ciągu w celu późniejszego manipulowania. Jeśli chcesz określić, czy jeden lub więcej ciągów jest zgodny ze wzorcem wyrażenia regularnego, a następnie pobrać je do kolejnej manipulacji, wywołaj metodę Match lub Matches.

Aby uzyskać więcej informacji na temat startat, zobacz sekcję Uwagi Match(String, Int32).

Wyjątek RegexMatchTimeoutException jest zgłaszany, jeśli czas wykonywania pasującej operacji przekracza interwał limitu czasu określony przez konstruktora Regex.Regex(String, RegexOptions, TimeSpan). Jeśli nie ustawisz interwału przekroczenia limitu czasu podczas wywoływania konstruktora, wyjątek jest zgłaszany, jeśli operacja przekracza wartość limitu czasu ustanowioną dla domeny aplikacji, w której jest tworzony obiekt Regex. Jeśli w wywołaniu konstruktora Regex lub we właściwościach domeny aplikacji nie zdefiniowano limitu czasu lub jeśli wartość limitu czasu jest Regex.InfiniteMatchTimeout, nie jest zgłaszany żaden wyjątek.

Zobacz też

Dotyczy

IsMatch(String)

Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs

Wskazuje, czy wyrażenie regularne określone w konstruktorze Regex znajduje dopasowanie w określonym ciągu wejściowym.

public:
 bool IsMatch(System::String ^ input);
public bool IsMatch (string input);
member this.IsMatch : string -> bool
Public Function IsMatch (input As String) As Boolean

Parametry

input
String

Ciąg do wyszukiwania dopasowania.

Zwraca

true, jeśli wyrażenie regularne znajdzie dopasowanie; w przeciwnym razie false.

Wyjątki

input jest null.

Wystąpił limit czasu. Aby uzyskać więcej informacji na temat limitów czasu, zobacz sekcję Uwagi.

Przykłady

Poniższy przykład ilustruje użycie metody IsMatch(String) w celu określenia, czy ciąg jest prawidłowym numerem części. Wyrażenie regularne zakłada, że numer części ma określony format składający się z trzech zestawów znaków rozdzielonych łącznikami. Pierwszy zestaw, który zawiera cztery znaki, musi składać się z znaku alfanumerycznego, a następnie dwóch znaków liczbowych, po których następuje znak alfanumeryczny. Drugi zestaw, który składa się z trzech znaków, musi być numeryczny. Trzeci zestaw, który składa się z czterech znaków, musi zawierać trzy znaki liczbowe, po których następuje znak alfanumeryczny.

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.

Wzorzec wyrażenia regularnego to:

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

W poniższej tabeli przedstawiono sposób interpretowania wzorca wyrażenia regularnego.

Deseń Opis
^ Rozpocznij dopasowanie na początku wiersza.
[a-zA-Z0-9] Dopasuj pojedynczy znak alfabetyczny (a przez z lub A przez Z) lub znak liczbowy.
\d{2} Dopasuj dwa znaki liczbowe.
[a-zA-Z0-9] Dopasuj pojedynczy znak alfabetyczny (a przez z lub A przez Z) lub znak liczbowy.
- Dopasuj łącznik.
\d{3} Dopasuj dokładnie trzy znaki liczbowe.
(-\d{3}){2} Znajdź łącznik z trzema znakami liczbowymi i dopasuj dwa wystąpienia tego wzorca.
[a-zA-Z0-9] Dopasuj pojedynczy znak alfabetyczny (a przez z lub A przez Z) lub znak liczbowy.
$ Zakończ dopasowanie na końcu wiersza.

Uwagi

Metoda IsMatch jest zwykle używana do sprawdzania poprawności ciągu lub zapewnienia, że ciąg jest zgodny z określonym wzorcem bez pobierania tego ciągu w celu późniejszego manipulowania. Jeśli chcesz określić, czy jeden lub więcej ciągów jest zgodny ze wzorcem wyrażenia regularnego, a następnie pobrać je do kolejnej manipulacji, wywołaj metodę Match lub Matches.

Wyjątek RegexMatchTimeoutException jest zgłaszany, jeśli czas wykonywania pasującej operacji przekracza interwał limitu czasu określony przez konstruktora Regex.Regex(String, RegexOptions, TimeSpan). Jeśli nie ustawisz interwału przekroczenia limitu czasu podczas wywoływania konstruktora, wyjątek jest zgłaszany, jeśli operacja przekracza wartość limitu czasu ustanowioną dla domeny aplikacji, w której jest tworzony obiekt Regex. Jeśli w wywołaniu konstruktora Regex lub we właściwościach domeny aplikacji nie zdefiniowano limitu czasu lub jeśli wartość limitu czasu jest Regex.InfiniteMatchTimeout, nie jest zgłaszany żaden wyjątek.

Zobacz też

Dotyczy

IsMatch(ReadOnlySpan<Char>)

Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs
Źródło:
Regex.Match.cs

Wskazuje, czy wyrażenie regularne określone w konstruktorze wyrażeń regularnych znajduje dopasowanie w określonym zakresie wejściowym.

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

Parametry

input
ReadOnlySpan<Char>

Zakres wyszukiwania dopasowania.

Zwraca

true, jeśli wyrażenie regularne znajdzie dopasowanie; w przeciwnym razie false.

Wyjątki

Wystąpił limit czasu.

Dotyczy