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 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)
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 , Z lub 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, 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 pattern
options
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)
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)
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 , Z lub 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)
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)
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)
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)
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)
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>)
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)
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 startat
programu , 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
Opinia
Prześlij i wyświetl opinię dla