Regex.IsMatch Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje, zda regulární výraz najde shodu ve vstupním řetězci.
Přetížení
IsMatch(String, String, RegexOptions, TimeSpan) |
Určuje, zda zadaný regulární výraz najde shodu v zadaném vstupním řetězci pomocí zadaných možností shody a intervalu časového limitu. |
IsMatch(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan) |
Určuje, zda zadaný regulární výraz najde shodu v zadaném rozsahu vstupu pomocí zadaných možností shody a intervalu časového limitu. |
IsMatch(String, String, RegexOptions) |
Určuje, zda zadaný regulární výraz najde shodu v zadaném vstupním řetězci pomocí zadaných odpovídajících možností. |
IsMatch(ReadOnlySpan<Char>, String, RegexOptions) |
Určuje, zda zadaný regulární výraz najde shodu v zadaném rozsahu vstupu pomocí zadaných odpovídajících možností. |
IsMatch(String, String) |
Určuje, zda zadaný regulární výraz najde shodu v zadaném vstupním řetězci. |
IsMatch(ReadOnlySpan<Char>, Int32) |
Určuje, zda regulární výraz zadaný v konstruktoru Regex najde shodu v zadaném vstupním rozsahu. |
IsMatch(ReadOnlySpan<Char>, String) |
Určuje, zda zadaný regulární výraz najde shodu v zadaném rozsahu vstupu. |
IsMatch(String, Int32) |
Určuje, zda regulární výraz zadaný v konstruktoru Regex najde shodu v zadaném vstupním řetězci počínaje zadanou počáteční pozicí v řetězci. |
IsMatch(String) |
Určuje, zda regulární výraz zadaný v konstruktoru Regex najde shodu v zadaném vstupním řetězci. |
IsMatch(ReadOnlySpan<Char>) |
Určuje, zda regulární výraz zadaný v konstruktoru Regex najde shodu v zadaném vstupním rozsahu. |
IsMatch(String, String, RegexOptions, TimeSpan)
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
Určuje, zda zadaný regulární výraz najde shodu v zadaném vstupním řetězci pomocí zadaných možností shody a intervalu časového limitu.
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
Řetězec, který chcete vyhledat shodu.
- pattern
- String
Vzor regulárního výrazu, který se má shodovat.
- options
- RegexOptions
Bitové kombinace hodnot výčtu, které poskytují možnosti pro porovnávání.
- matchTimeout
- TimeSpan
Časový limit nebo InfiniteMatchTimeout označující, že metoda by neměla časového limitu časového limitu.
Návraty
true
, pokud regulární výraz najde shodu; jinak false
.
Výjimky
Došlo k chybě analýzy regulárních výrazů.
input
nebo pattern
je null
.
options
není platná hodnota RegexOptions.
-nebo-
matchTimeout
je záporná, nula nebo větší než přibližně 24 dní.
Došlo k vypršení časového limitu.
Příklady
Následující příklad ukazuje použití IsMatch(String, String, RegexOptions, TimeSpan) metoda k určení, zda řetězec je platné číslo části. Regulární výraz předpokládá, že číslo části má specifický formát, který se skládá ze tří sad znaků oddělených pomlčkami. První sada, která obsahuje čtyři znaky, se musí skládat z alfanumerického znaku následovaného dvěma číselnými znaky následovanými alfanumerickým znakem. Druhá sada, která se skládá ze tří znaků, musí být číselná. Třetí sada, která se skládá ze čtyř znaků, musí obsahovat tři číselné znaky následované alfanumerickým znakem. Porovnávání vzoru regulárního výrazu by mělo zahrnovat minimální vyhledávání ve vstupním řetězci, takže metoda nastaví interval časového limitu 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.
Vzor regulárního výrazu je:
^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$
Následující tabulka ukazuje, jak se interpretuje vzor regulárního výrazu.
Vzor | Popis |
---|---|
^ |
Zahajte shodu na začátku řetězce. |
[A-Z0-9] |
Porovná libovolný jeden abecední znak z A až Z nebo libovolný číselný znak. |
\d{2} |
Porovná dva číselné znaky. |
[A-Z0-9] |
Porovná libovolný jeden abecední znak z A až Z nebo libovolný číselný znak. |
- |
Porovná spojovník. |
\d{3} |
Porovná přesně tři číselné znaky. |
(-\d{3}){2} |
Najděte spojovník následovaný třemi číselnými znaky a spárte dva výskyty tohoto vzoru. |
[A-Z0-9] |
Porovná libovolný jeden abecední znak z A až Z nebo libovolný číselný znak. |
$ |
Ukončete shodu na konci řetězce. |
Volání metody IsMatch(String, String, RegexOptions, TimeSpan) s parametrem options
nastaveným na RegexOptions.IgnoreCase je ekvivalentní definování následujícího regulárního výrazu:
[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]
Porovnání najdete v příkladu metody IsMatch(String, String).
Poznámky
Metoda IsMatch se obvykle používá k ověření řetězce nebo k zajištění, že řetězec odpovídá určitému vzoru bez načtení tohoto řetězce pro následnou manipulaci. Pokud chcete zjistit, jestli jeden nebo více řetězců odpovídá vzoru regulárního výrazu a pak je načte pro následnou manipulaci, zavolejte Match nebo Matches metodu.
Statická metoda IsMatch(String, String, RegexOptions, TimeSpan) je ekvivalentní vytvoření objektu Regex se vzorem regulárního výrazu určeným pattern
a možnostmi regulárního výrazu určenými options
a voláním metody instance IsMatch(String). Tento vzor regulárního výrazu je uložen v mezipaměti pro rychlé načítání modulem regulárních výrazů.
Parametr pattern
se skládá z elementů jazyka regulárních výrazů, které symbolicky popisují řetězec, který se má shodovat. Další informace o regulárních výrazech najdete v tématu regulárních výrazů .NET a jazyk regulárních výrazů – stručná referenční.
Parametr matchTimeout
určuje, jak dlouho se má metoda porovnávání vzorů pokusit najít shodu, než vyprší časový limit. Nastavení intervalu časového limitu brání regulárním výrazům, které spoléhají na nadměrné navracení, aby přestaly reagovat při zpracování vstupu, který obsahuje téměř shody. Další informace najdete v tématu Osvědčené postupy pro regulární výrazy a zpětného navracení . Pokud se v daném časovém intervalu nenajde žádná shoda, vyvolá metoda RegexMatchTimeoutException výjimku.
matchTimeout
přepíše výchozí hodnotu časového limitu definovanou pro doménu aplikace, ve které se metoda spouští.
Poznámky pro volající
Doporučujeme nastavit parametr matchTimeout
na odpovídající hodnotu, například dvě sekundy. Pokud zakážete vypršení časového limitu zadáním InfiniteMatchTimeout, modul regulárních výrazů nabízí mírně lepší výkon. Časové limity byste ale měli zakázat pouze za následujících podmínek:
Pokud je vstup zpracovaný regulárním výrazem odvozen ze známého a důvěryhodného zdroje nebo se skládá ze statického textu. Tím se vyloučí text, který uživatelé dynamicky zadali.
Když byl vzor regulárního výrazu důkladně otestován, aby se zajistilo, že efektivně zpracovává shody, neshody a blízké shody.
Pokud vzor regulárního výrazu neobsahuje žádné prvky jazyka, o kterých je známo, že při zpracování blízké shody způsobují nadměrné navracení.
Viz také
Platí pro
IsMatch(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan)
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
Určuje, zda zadaný regulární výraz najde shodu v zadaném rozsahu vstupu pomocí zadaných možností shody a intervalu časového limitu.
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>
Rozsah hledání shody.
- pattern
- String
Vzor regulárního výrazu, který se má shodovat.
- options
- RegexOptions
Bitové kombinace hodnot výčtu, které poskytují možnosti pro porovnávání.
- matchTimeout
- TimeSpan
Časový limit nebo InfiniteMatchTimeout označující, že metoda by neměla časového limitu časového limitu.
Návraty
true
, pokud regulární výraz najde shodu; jinak false
.
Výjimky
Došlo k chybě analýzy regulárních výrazů.
pattern
je null
Došlo k vypršení časového limitu.
options
není platná hodnota RegexOptions nebo matchTimeout
je záporná, nula nebo větší než přibližně 24 dnů.
Platí pro
IsMatch(String, String, RegexOptions)
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
Určuje, zda zadaný regulární výraz najde shodu v zadaném vstupním řetězci pomocí zadaných odpovídajících možností.
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
Řetězec, který chcete vyhledat shodu.
- pattern
- String
Vzor regulárního výrazu, který se má shodovat.
- options
- RegexOptions
Bitové kombinace hodnot výčtu, které poskytují možnosti pro porovnávání.
Návraty
true
, pokud regulární výraz najde shodu; jinak false
.
Výjimky
Došlo k chybě analýzy regulárních výrazů.
input
nebo pattern
je null
.
options
není platná hodnota RegexOptions.
Došlo k vypršení časového limitu. Další informace o časových limitech najdete v části Poznámky.
Příklady
Následující příklad ukazuje použití IsMatch(String, String) metoda k určení, zda řetězec je platné číslo části. Regulární výraz předpokládá, že číslo části má specifický formát, který se skládá ze tří sad znaků oddělených pomlčkami. První sada, která obsahuje čtyři znaky, se musí skládat z alfanumerického znaku následovaného dvěma číselnými znaky následovanými alfanumerickým znakem. Druhá sada, která se skládá ze tří znaků, musí být číselná. Třetí sada, která se skládá ze čtyř znaků, musí obsahovat tři číselné znaky následované alfanumerickým znakem.
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.
Vzor regulárního výrazu je:
^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$
Následující tabulka ukazuje, jak se interpretuje vzor regulárního výrazu.
Vzor | Popis |
---|---|
^ |
Zahajte shodu na začátku řetězce. |
[A-Z0-9] |
Porovná libovolný jeden abecední znak z A až Z nebo libovolný číselný znak. |
\d{2} |
Porovná dva číselné znaky. |
[A-Z0-9] |
Porovná libovolný jeden abecední znak z A až Z nebo libovolný číselný znak. |
- |
Porovná spojovník. |
\d{3} |
Porovná přesně tři číselné znaky. |
(-\d{3}){2} |
Najděte spojovník následovaný třemi číselnými znaky a porovná dva výskyty tohoto vzoru. |
[A-Z0-9] |
Porovná libovolný jeden abecední znak z A až Z nebo libovolný číselný znak. |
$ |
Ukončete shodu na konci řetězce. |
Volání metody IsMatch(String, String, RegexOptions) s parametrem options
nastaveným na RegexOptions.IgnoreCase je ekvivalentní definování následujícího regulárního výrazu:
[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]
Porovnání najdete v příkladu metody IsMatch(String, String).
Poznámky
Metoda IsMatch se obvykle používá k ověření řetězce nebo k zajištění, že řetězec odpovídá určitému vzoru bez načtení tohoto řetězce pro následnou manipulaci. Pokud chcete zjistit, jestli jeden nebo více řetězců odpovídá vzoru regulárního výrazu a pak je načte pro následnou manipulaci, zavolejte Match nebo Matches metodu.
Statická metoda IsMatch(String, String, RegexOptions) je ekvivalentní vytvoření objektu Regex se vzorem regulárního výrazu určeným pattern
a možnostmi regulárního výrazu určenými options
a voláním metody instance IsMatch(String). Tento vzor regulárního výrazu je uložen v mezipaměti pro rychlé načítání modulem regulárních výrazů.
Parametr pattern
se skládá z elementů jazyka regulárních výrazů, které symbolicky popisují řetězec, který se má shodovat. Další informace o regulárních výrazech najdete v tématu regulárních výrazů .NET a jazyk regulárních výrazů – stručná referenční.
Výjimka RegexMatchTimeoutException je vyvolána, pokud doba provádění odpovídající operace překračuje časový limit zadaný pro doménu aplikace, ve které je volána metoda. Pokud není definován žádný časový limit ve vlastnostech domény aplikace nebo pokud je hodnota časového limitu Regex.InfiniteMatchTimeout, nevyvolá se žádná výjimka.
Poznámky pro volající
Tato metoda vyprší po intervalu, který se rovná výchozí hodnotě časového limitu domény aplikace, ve které je volána. Pokud pro doménu aplikace nebyla definována hodnota časového limitu, použije se hodnota InfiniteMatchTimeout, která brání vypršení časového limitu metody. Doporučená statická metoda pro ověření shody vzorů je IsMatch(String, String, RegexOptions, TimeSpan), která umožňuje nastavit interval časového limitu.
Viz také
Platí pro
IsMatch(ReadOnlySpan<Char>, String, RegexOptions)
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
Určuje, zda zadaný regulární výraz najde shodu v zadaném rozsahu vstupu pomocí zadaných odpovídajících možností.
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>
Rozsah hledání shody.
- pattern
- String
Vzor regulárního výrazu, který se má shodovat.
- options
- RegexOptions
Bitové kombinace hodnot výčtu, které poskytují možnosti pro porovnávání.
Návraty
true
, pokud regulární výraz najde shodu; jinak false
.
Výjimky
Došlo k chybě analýzy regulárních výrazů.
pattern
je null
Došlo k vypršení časového limitu.
options
není v platné hodnotě RegexOptions.
Platí pro
IsMatch(String, String)
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
Určuje, zda zadaný regulární výraz najde shodu v zadaném vstupním řetězci.
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
Řetězec, který chcete vyhledat shodu.
- pattern
- String
Vzor regulárního výrazu, který se má shodovat.
Návraty
true
, pokud regulární výraz najde shodu; jinak false
.
Výjimky
Došlo k chybě analýzy regulárních výrazů.
input
nebo pattern
je null
.
Došlo k vypršení časového limitu. Další informace o časových limitech najdete v části Poznámky.
Příklady
Následující příklad ukazuje použití IsMatch(String, String) metoda k určení, zda řetězec je platné číslo části. Regulární výraz předpokládá, že číslo části má specifický formát, který se skládá ze tří sad znaků oddělených pomlčkami. První sada, která obsahuje čtyři znaky, se musí skládat z alfanumerického znaku následovaného dvěma číselnými znaky následovanými alfanumerickým znakem. Druhá sada, která se skládá ze tří znaků, musí být číselná. Třetí sada, která se skládá ze čtyř znaků, musí obsahovat tři číselné znaky následované alfanumerickým znakem.
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.
Vzor regulárního výrazu je:
^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$
Následující tabulka ukazuje, jak se interpretuje vzor regulárního výrazu.
Vzor | Popis |
---|---|
^ |
Zahajte shodu na začátku řádku. |
[a-zA-Z0-9] |
Porovná jeden abecední znak (a prostřednictvím z nebo A až Z ) nebo číselného znaku. |
\d{2} |
Porovná dva číselné znaky. |
[a-zA-Z0-9] |
Porovná jeden abecední znak (a prostřednictvím z nebo A až Z ) nebo číselného znaku. |
- |
Porovná spojovník. |
\d{3} |
Porovná přesně tři číselné znaky. |
(-\d{3}){2} |
Najděte spojovník následovaný třemi číselnými znaky a spárte dva výskyty tohoto vzoru. |
[a-zA-Z0-9] |
Porovná jeden abecední znak (a prostřednictvím z nebo A až Z ) nebo číselného znaku. |
$ |
Ukončete shodu na konci řádku. |
Poznámky
Metoda IsMatch se obvykle používá k ověření řetězce nebo k zajištění, že řetězec odpovídá určitému vzoru bez načtení tohoto řetězce pro následnou manipulaci. Pokud chcete zjistit, jestli jeden nebo více řetězců odpovídá vzoru regulárního výrazu a pak je načte pro následnou manipulaci, zavolejte Match nebo Matches metodu.
Static IsMatch(String, String) metoda je ekvivalentní vytvoření Regex objektu se vzorem regulárního výrazu určeným pattern
a voláním metody instance IsMatch(String). Tento vzor regulárního výrazu je uložen v mezipaměti pro rychlé načítání modulem regulárních výrazů.
Parametr pattern
se skládá z elementů jazyka regulárních výrazů, které symbolicky popisují řetězec, který se má shodovat. Další informace o regulárních výrazech najdete v tématu regulárních výrazů .NET a jazyk regulárních výrazů – stručná referenční.
Výjimka RegexMatchTimeoutException je vyvolána, pokud doba provádění odpovídající operace překračuje časový limit zadaný pro doménu aplikace, ve které je volána metoda. Pokud není definován žádný časový limit ve vlastnostech domény aplikace nebo pokud je hodnota časového limitu Regex.InfiniteMatchTimeout, nevyvolá se žádná výjimka.
Poznámky pro volající
Tato metoda vyprší po intervalu, který se rovná výchozí hodnotě časového limitu domény aplikace, ve které je volána metoda. Pokud pro doménu aplikace nebyla definována hodnota časového limitu, použije se hodnota InfiniteMatchTimeout, která brání vypršení časového limitu metody. Doporučená statická metoda pro ověření shody vzorů je IsMatch(String, String, RegexOptions, TimeSpan), která umožňuje nastavit interval časového limitu.
Viz také
Platí pro
IsMatch(ReadOnlySpan<Char>, Int32)
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
Určuje, zda regulární výraz zadaný v konstruktoru Regex najde shodu v zadaném vstupním rozsahu.
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>
Rozsah hledání shody.
- startat
- Int32
Pozice znaku založeného na nule, na které se má hledání spustit.
Návraty
true
, pokud regulární výraz najde shodu; jinak false
.
Výjimky
Došlo k vypršení časového limitu.
Platí pro
IsMatch(ReadOnlySpan<Char>, String)
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
Určuje, zda zadaný regulární výraz najde shodu v zadaném rozsahu vstupu.
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>
Rozsah hledání shody.
- pattern
- String
Vzor regulárního výrazu, který se má shodovat.
Návraty
true
, pokud regulární výraz najde shodu; jinak false
.
Výjimky
Došlo k chybě analýzy regulárních výrazů.
pattern
je null
Došlo k vypršení časového limitu.
Platí pro
IsMatch(String, Int32)
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
Určuje, zda regulární výraz zadaný v konstruktoru Regex najde shodu v zadaném vstupním řetězci počínaje zadanou počáteční pozicí v řetězci.
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
Řetězec, který chcete vyhledat shodu.
- startat
- Int32
Pozice znaku, na které má hledání začínat.
Návraty
true
, pokud regulární výraz najde shodu; jinak false
.
Výjimky
input
je null
.
startat
je menší než nula nebo větší než délka input
.
Došlo k vypršení časového limitu. Další informace o časových limitech najdete v části Poznámky.
Příklady
Následující příklad ukazuje použití IsMatch(String, Int32) metoda k určení, zda řetězec je platné číslo části. Vyhledá číslo části, které následuje za dvojtečku (:) znak v řetězci. Metoda IndexOf(Char) slouží k určení pozice dvojtečky, která se pak předá metodě IsMatch(String, Int32). Regulární výraz předpokládá, že číslo části má specifický formát, který se skládá ze tří sad znaků oddělených pomlčkami. První sada, která obsahuje čtyři znaky, se musí skládat z alfanumerického znaku následovaného dvěma číselnými znaky následovanými alfanumerickým znakem. Druhá sada, která se skládá ze tří znaků, musí být číselná. Třetí sada, která se skládá ze čtyř znaků, musí obsahovat tři číselné znaky následované alfanumerickým znakem.
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.
Vzor regulárního výrazu je:
[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$
Následující tabulka ukazuje, jak se interpretuje vzor regulárního výrazu.
Vzor | Popis |
---|---|
[a-zA-Z0-9] |
Porovná jeden abecední znak (a prostřednictvím z nebo A až Z ) nebo číselného znaku. |
\d{2} |
Porovná dva číselné znaky. |
[a-zA-Z0-9] |
Porovná jeden abecední znak (a prostřednictvím z nebo A až Z ) nebo číselného znaku. |
- |
Porovná spojovník. |
\d{3} |
Porovná přesně tři číselné znaky. |
(-\d{3}){2} |
Najděte spojovník následovaný třemi číselnými znaky a spárte dva výskyty tohoto vzoru. |
[a-zA-Z0-9] |
Porovná jeden abecední znak (a prostřednictvím z nebo A až Z ) nebo číselného znaku. |
$ |
Ukončete shodu na konci řádku. |
Poznámky
Metoda IsMatch se obvykle používá k ověření řetězce nebo k zajištění, že řetězec odpovídá určitému vzoru bez načtení tohoto řetězce pro následnou manipulaci. Pokud chcete zjistit, jestli jeden nebo více řetězců odpovídá vzoru regulárního výrazu a pak je načte pro následnou manipulaci, zavolejte Match nebo Matches metodu.
Další podrobnosti o startat
naleznete v části Poznámky Match(String, Int32).
Výjimka RegexMatchTimeoutException je vyvolána, pokud doba provádění odpovídající operace překračuje časový limit určený konstruktorem Regex.Regex(String, RegexOptions, TimeSpan). Pokud při volání konstruktoru nenastavíte časový limit, vyvolá se výjimka, pokud operace překročí hodnotu časového limitu vytvořenou pro doménu aplikace, ve které je vytvořen objekt Regex. Pokud není definován žádný časový limit ve volání konstruktoru Regex nebo ve vlastnostech domény aplikace nebo pokud je hodnota časového limitu Regex.InfiniteMatchTimeout, nevyvolá se žádná výjimka.
Viz také
Platí pro
IsMatch(String)
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
Určuje, zda regulární výraz zadaný v konstruktoru Regex najde shodu v zadaném vstupním řetězci.
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
Řetězec, který chcete vyhledat shodu.
Návraty
true
, pokud regulární výraz najde shodu; jinak false
.
Výjimky
input
je null
.
Došlo k vypršení časového limitu. Další informace o časových limitech najdete v části Poznámky.
Příklady
Následující příklad ukazuje použití IsMatch(String) metoda k určení, zda řetězec je platné číslo části. Regulární výraz předpokládá, že číslo části má specifický formát, který se skládá ze tří sad znaků oddělených pomlčkami. První sada, která obsahuje čtyři znaky, se musí skládat z alfanumerického znaku následovaného dvěma číselnými znaky následovanými alfanumerickým znakem. Druhá sada, která se skládá ze tří znaků, musí být číselná. Třetí sada, která se skládá ze čtyř znaků, musí obsahovat tři číselné znaky následované alfanumerickým znakem.
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.
Vzor regulárního výrazu je:
^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$
Následující tabulka ukazuje, jak se interpretuje vzor regulárního výrazu.
Vzor | Popis |
---|---|
^ |
Zahajte shodu na začátku řádku. |
[a-zA-Z0-9] |
Porovná jeden abecední znak (a prostřednictvím z nebo A až Z ) nebo číselného znaku. |
\d{2} |
Porovná dva číselné znaky. |
[a-zA-Z0-9] |
Porovná jeden abecední znak (a prostřednictvím z nebo A až Z ) nebo číselného znaku. |
- |
Porovná spojovník. |
\d{3} |
Porovná přesně tři číselné znaky. |
(-\d{3}){2} |
Najděte spojovník následovaný třemi číselnými znaky a spárte dva výskyty tohoto vzoru. |
[a-zA-Z0-9] |
Porovná jeden abecední znak (a prostřednictvím z nebo A až Z ) nebo číselného znaku. |
$ |
Ukončete shodu na konci řádku. |
Poznámky
Metoda IsMatch se obvykle používá k ověření řetězce nebo k zajištění, že řetězec odpovídá určitému vzoru bez načtení tohoto řetězce pro následnou manipulaci. Pokud chcete zjistit, jestli jeden nebo více řetězců odpovídá vzoru regulárního výrazu a pak je načte pro následnou manipulaci, zavolejte Match nebo Matches metodu.
Výjimka RegexMatchTimeoutException je vyvolána, pokud doba provádění odpovídající operace překračuje časový limit určený konstruktorem Regex.Regex(String, RegexOptions, TimeSpan). Pokud při volání konstruktoru nenastavíte časový limit, vyvolá se výjimka, pokud operace překročí hodnotu časového limitu vytvořenou pro doménu aplikace, ve které je vytvořen objekt Regex. Pokud není definován žádný časový limit ve volání konstruktoru Regex nebo ve vlastnostech domény aplikace nebo pokud je hodnota časového limitu Regex.InfiniteMatchTimeout, nevyvolá se žádná výjimka.
Viz také
Platí pro
IsMatch(ReadOnlySpan<Char>)
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
- Zdroj:
- Regex.Match.cs
Určuje, zda regulární výraz zadaný v konstruktoru Regex najde shodu v zadaném vstupním rozsahu.
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>
Rozsah hledání shody.
Návraty
true
, pokud regulární výraz najde shodu; jinak false
.
Výjimky
Došlo k vypršení časového limitu.