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 przekroczenia 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>, String)

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

IsMatch(ReadOnlySpan<Char>, Int32)

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

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 Regex 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, String, RegexOptions, TimeSpan)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
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 przekroczenia 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 wyszukania 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 to null.

options jest nieprawidłową RegexOptions wartością.

-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 IsMatch(String, String, RegexOptions, TimeSpan) metody 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, który składa się z trzech zestawów znaków rozdzielonych łącznikami. Pierwszy zestaw, który zawiera cztery znaki, musi składać się z znaku alfanumerycznego, po którym następują dwa znaki liczbowe, 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 mieć trzy znaki liczbowe, po których następuje znak alfanumeryczny. Dopasowanie wzorca wyrażenia regularnego powinno obejmować minimalne przeszukiwanie ciągu wejściowego, dlatego metoda ustawia interwał limitu czasu wynoszący 500 milisekund.

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.

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żeń regularnych.

Wzorce Opis
^ Rozpocznij dopasowanie na początku ciągu.
[A-Z0-9] Dopasuj dowolny pojedynczy znak alfabetyczny od A do , Zlub dowolny znak liczbowy.
\d{2} Dopasuj dwa znaki liczbowe.
[A-Z0-9] Dopasuj dowolny pojedynczy znak alfabetyczny od A do , 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 od A do , Zlub dowolny znak liczbowy.
$ Zakończ dopasowanie na końcu ciągu.

IsMatch(String, String, RegexOptions, TimeSpan) Wywołanie metody z ustawionym RegexOptions.IgnoreCase parametrem options jest równoważne z zdefiniowaniem następującego wyrażenia regularnego:

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

Aby zapoznać się z porównaniem, zobacz przykład IsMatch(String, String) metody .

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 do 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 or Matches .

Metoda statyczna IsMatch(String, String, RegexOptions, TimeSpan) jest równoważna konstruowaniu obiektu ze wzorcem wyrażenia regularnego Regex określonego przez i opcjami wyrażenia regularnego określonymi przez patternoptions metodę wystąpienia i wywoływaniem IsMatch(String) metody wystąpienia. 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 (Wyrażenia regularne platformy .NET i język wyrażeń regularnych — szybki przewodnik).

Parametr matchTimeout określa, jak długo metoda dopasowywania wzorca powinna spróbować znaleźć dopasowanie przed upływem limitu czasu. Ustawienie interwału limitu czasu zapobiega wyrażeniom regularnym, które polegają na nadmiernej wycofywaniu, aby przestać odpowiadać podczas przetwarzania danych wejściowych zawierających niemal dopasowania. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące wyrażeń regularnych i wycofywania. Jeśli w tym interwale czasu nie znaleziono dopasowania, metoda zgłasza RegexMatchTimeoutException wyjątek. matchTimeout zastępuje dowolną 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ść, taką jak dwie sekundy. Jeśli wyłączysz limity czasu, określając InfiniteMatchTimeoutwartość , 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ładają 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, aby upewnić się, że efektywnie obsługuje dopasowania, niezgodne i zbliżające się dopasowania.

  • Gdy wzorzec wyrażenia regularnego nie zawiera żadnych elementów języka, które są znane do nadmiernego wycofywania podczas przetwarzania niemal zgodnego.

Zobacz też

Dotyczy

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

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
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 to null

Wystąpił limit czasu.

options wartość jest nieprawidłowa RegexOptions lub matchTimeout jest ujemna, zero lub większa niż około 24 dni.

Dotyczy

IsMatch(String, String, RegexOptions)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
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 wyszukania 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 ma wartość null.

options jest nieprawidłową RegexOptions wartością.

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 IsMatch(String, String) metody 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, który składa się z trzech zestawów znaków rozdzielonych łącznikami. Pierwszy zestaw, który zawiera cztery znaki, musi składać się z znaku alfanumerycznego, po którym następują dwa znaki liczbowe, 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 mieć trzy znaki liczbowe, po których następuje znak alfanumeryczny.

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.

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żeń regularnych.

Wzorce Opis
^ Rozpocznij dopasowanie na początku ciągu.
[A-Z0-9] Dopasuj dowolny pojedynczy znak alfabetyczny od A do , Zlub dowolny znak liczbowy.
\d{2} Dopasuj dwa znaki liczbowe.
[A-Z0-9] Dopasuj dowolny pojedynczy znak alfabetyczny od A do Z, lub 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 od A do Z, lub dowolny znak liczbowy.
$ Zakończ dopasowanie na końcu ciągu.

IsMatch(String, String, RegexOptions) Wywołanie metody z ustawionym RegexOptions.IgnoreCase parametrem options jest równoważne z zdefiniowaniem 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 IsMatch(String, String) metody .

Uwagi

Metoda IsMatch jest zwykle używana do sprawdzania poprawności ciągu lub upewnienia się, ż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 or Matches .

Metoda statyczna IsMatch(String, String, RegexOptions) jest równoważna konstruowaniu obiektu za pomocą wzorca wyrażenia regularnego Regex określonego przez pattern program oraz opcji wyrażenia regularnego określonego przez options program i wywoływania IsMatch(String) metody wystąpienia. Ten wzorzec wyrażenia regularnego jest buforowany na potrzeby 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 (Wyrażenia regularne platformy .NET i język wyrażeń regularnych — krótki przewodnik).

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 wynosi Regex.InfiniteMatchTimeout, nie zostanie zgłoszony 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ą weryfikacji dopasowania wzorca jest IsMatch(String, String, RegexOptions, TimeSpan), która umożliwia ustawienie interwału limitu czasu.

Zobacz też

Dotyczy

IsMatch(ReadOnlySpan<Char>, String, RegexOptions)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
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 to null

Wystąpił limit czasu.

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

Dotyczy

IsMatch(String, String)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
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 wyszukania 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 ma wartość 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 IsMatch(String, String) metody 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, który składa się z trzech zestawów znaków oddzielonych łącznikami. Pierwszy zestaw, który zawiera cztery znaki, musi składać się z znaku alfanumerycznego, po którym następuje dwa znaki liczbowe, 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.

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.

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.

Wzorce 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 upewnienia się, ż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 or Matches .

Metoda statyczna IsMatch(String, String) jest równoważna konstruowaniu Regex obiektu za pomocą wzorca wyrażenia regularnego określonego przez pattern metodę i wywoływania IsMatch(String) metody wystąpienia. Ten wzorzec wyrażenia regularnego jest buforowany na potrzeby 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 (Wyrażenia regularne platformy .NET i język wyrażeń regularnych — krótki przewodnik).

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 wynosi Regex.InfiniteMatchTimeout, nie zostanie zgłoszony 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 wartość limitu czasu nie została zdefiniowana dla domeny aplikacji, zostanie użyta wartość InfiniteMatchTimeout, która uniemożliwia przekroczenie limitu czasu metody. Zalecaną metodą statyczną do weryfikowania dopasowania wzorca jest IsMatch(String, String, RegexOptions, TimeSpan), która umożliwia ustawienie interwału limitu czasu.

Zobacz też

Dotyczy

IsMatch(ReadOnlySpan<Char>, String)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
Regex.Match.cs

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

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 to null

Wystąpił limit czasu.

Dotyczy

IsMatch(ReadOnlySpan<Char>, Int32)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
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 zerowego, 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(String)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
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 wyszukania dopasowania.

Zwraca

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

Wyjątki

input to 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 IsMatch(String) metody 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, który składa się z trzech zestawów znaków oddzielonych łącznikami. Pierwszy zestaw, który zawiera cztery znaki, musi składać się z znaku alfanumerycznego, po którym następuje dwa znaki liczbowe, 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.

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.

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.

Wzorce 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 upewnienia się, ż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 or 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 limitu czasu podczas wywoływania konstruktora, wyjątek jest zgłaszany, jeśli operacja przekroczy wartość limitu czasu ustanowioną dla domeny aplikacji, w której Regex jest tworzony obiekt. Jeśli w wywołaniu konstruktora lub we właściwościach domeny aplikacji nie zdefiniowano Regex limitu czasu lub jeśli wartość limitu czasu wynosi Regex.InfiniteMatchTimeout, nie jest zgłaszany wyjątek.

Zobacz też

Dotyczy

IsMatch(ReadOnlySpan<Char>)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
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

IsMatch(String, Int32)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
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 wyszukania dopasowania.

startat
Int32

Położenie znaku, w którym ma rozpocząć wyszukiwanie.

Zwraca

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

Wyjątki

input to 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 IsMatch(String, Int32) metody w celu określenia, czy ciąg jest prawidłowym numerem części. Wyszukuje numer części, który następuje po dwukropku (:) znak w ciągu. Metoda IndexOf(Char) służy do określania położenia znaku dwukropka, który jest następnie przekazywany do IsMatch(String, Int32) metody . Wyrażenie regularne zakłada, że numer części ma określony format, który składa się z trzech zestawów znaków oddzielonych łącznikami. Pierwszy zestaw, który zawiera cztery znaki, musi składać się z znaku alfanumerycznego, po którym następuje dwa znaki liczbowe, 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.

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.

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.

Wzorce 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 upewnienia się, ż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 or Matches .

Aby uzyskać więcej informacji na temat startatprogramu , zobacz sekcję Uwagi w temacie 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 limitu czasu podczas wywoływania konstruktora, wyjątek jest zgłaszany, jeśli operacja przekroczy wartość limitu czasu ustanowioną dla domeny aplikacji, w której Regex jest tworzony obiekt. Jeśli w wywołaniu konstruktora lub we właściwościach domeny aplikacji nie zdefiniowano Regex limitu czasu lub jeśli wartość limitu czasu wynosi Regex.InfiniteMatchTimeout, nie jest zgłaszany wyjątek.

Zobacz też

Dotyczy