Regex.IsMatch Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 Z lub dowolny znak liczbowy. |
\d{2} |
Dopasuj dwa znaki liczbowe. |
[A-Z0-9] |
Dopasuj dowolny pojedynczy znak alfabetyczny z A przez 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 z A przez Z lub 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 Z lub dowolny znak liczbowy. |
\d{2} |
Dopasuj dwa znaki liczbowe. |
[A-Z0-9] |
Dopasuj dowolny pojedynczy znak alfabetyczny z A przez 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 z A przez Z lub 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.