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, jestli 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 shodných možností 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 možností shody. |
IsMatch(ReadOnlySpan<Char>, String, RegexOptions) |
Určuje, zda zadaný regulární výraz najde shodu v zadaném rozsahu vstupu pomocí zadaných možností shody. |
IsMatch(String, String) |
Určuje, zda zadaný regulární výraz najde shodu v zadaném vstupním řetězci. |
IsMatch(ReadOnlySpan<Char>, String) |
Určuje, zda zadaný regulární výraz najde shodu v zadaném rozsahu vstupu. |
IsMatch(ReadOnlySpan<Char>, Int32) |
Určuje, zda regulární výraz zadaný v konstruktoru Regex najde shodu v zadaném vstupním rozsahu. |
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, Int32) |
Určuje, zda regulární výraz zadaný v Regex konstruktoru najde shodu v zadaném vstupním řetězci, počínaje zadanou počáteční pozicí v řetězci. |
IsMatch(String, String, RegexOptions, TimeSpan)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- 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ý má 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
Interval časového limitu nebo InfiniteMatchTimeout označující, že by nemělo dojít k vypršení časového limitu metody.
Návraty
true
pokud regulární výraz najde shodu; v opačném případě . false
Výjimky
Došlo k chybě parsování regulárního výrazu.
input
nebo pattern
je null
.
options
není platná RegexOptions hodnota.
-nebo-
matchTimeout
je záporná, nulová 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) metody k určení, zda řetězec je platné číslo součásti. Regulární výraz předpokládá, že číslo dílu má specifický formát, který se skládá ze tří sad znaků oddělených spojovníky. První sada, která obsahuje čtyři znaky, musí obsahovat alfanumerický znak následovaný 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í mít tři číselné znaky následované alfanumerickým znakem. Shoda se vzorem regulárního výrazu by měla zahrnovat minimální prohledávání vstupního řetězce, takže metoda nastaví interval časového limitu 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.
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 vzor regulárního výrazu interpretuje.
Vzor | Description |
---|---|
^ |
Zahajte shodu na začátku řetězce. |
[A-Z0-9] |
Porovná jednotlivé abecední znaky od A až do Z nebo libovolného číselného znaku. |
\d{2} |
Porovná dva číselné znaky. |
[A-Z0-9] |
Porovná jednotlivé abecední znaky od A až do Z nebo libovolného číselného znaku. |
- |
Spárovat 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 shodte dva výskyty tohoto vzoru. |
[A-Z0-9] |
Porovná jednotlivé abecední znaky od A až do Z nebo libovolného číselného znaku. |
$ |
Ukončete shodu na konci řetězce. |
IsMatch(String, String, RegexOptions, TimeSpan) Volání metody s parametrem options
nastaveným na RegexOptions.IgnoreCase odpovídá 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 IsMatch(String, String) metody.
Poznámky
Metoda se IsMatch obvykle používá k ověření řetězce nebo k zajištění, že řetězec odpovídá určitému vzoru, aniž by se tento řetězec načítá 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číst pro následnou manipulaci, zavolejte metodu Match nebo Matches .
Statická IsMatch(String, String, RegexOptions, TimeSpan) metoda je ekvivalentní k vytvoření objektu Regex se vzorem regulárního výrazu určeným pomocí pattern
a možnostmi regulárního výrazu určenými options
a voláním IsMatch(String) metody instance. Tento vzor regulárního výrazu se ukládá do mezipaměti pro rychlé načtení 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í výrazy .NET a Jazyk regulárních výrazů – stručná referenční příručka.
Parametr matchTimeout
určuje, jak dlouho by se metoda porovnávání vzorů měla pokusit najít shodu, než vyprší časový limit. Nastavení intervalu časového limitu zabrání tomu, aby regulární výrazy, které jsou závislé na nadměrném navracení, přestaly reagovat, když zpracovávají vstup, který obsahuje téměř shody. Další informace najdete v tématu Osvědčené postupy pro regulární výrazy a backtracking. Pokud se v daném časovém intervalu nenajde žádná shoda, metoda vyvolá RegexMatchTimeoutException výjimku. matchTimeout
přepíše všechny výchozí hodnoty časového limitu definované pro doménu aplikace, ve které se metoda spouští.
Poznámky pro volající
Doporučujeme nastavit matchTimeout
parametr na odpovídající hodnotu, například dvě sekundy. Pokud zakážete vypršení časových limitů zadáním InfiniteMatchTimeout, modul regulárních výrazů nabízí o něco lepší výkon. Vypršení časových limitů byste ale měli zakázat pouze za následujících podmínek:
Když 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é zadává dynamicky.
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.
Když vzor regulárního výrazu neobsahuje žádné elementy jazyka, o kterých je známo, že způsobují nadměrné navracení při zpracování téměř shody.
Viz také
Platí pro
IsMatch(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
Určuje, zda zadaný regulární výraz najde shodu v zadaném rozsahu vstupu pomocí zadaných shodných možností 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
Interval časového limitu nebo InfiniteMatchTimeout označující, že by nemělo dojít k vypršení časového limitu metody.
Návraty
true
pokud regulární výraz najde shodu; v opačném případě . false
Výjimky
Došlo k chybě parsování regulárního výrazu.
pattern
je null
Došlo k vypršení časového limitu.
options
hodnota není platná RegexOptions nebo matchTimeout
je záporná, nula nebo větší než přibližně 24 dnů.
Platí pro
IsMatch(String, String, RegexOptions)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
Určuje, jestli zadaný regulární výraz najde shodu v zadaném vstupním řetězci pomocí zadaných možností shody.
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ý hledá 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; v opačném případě . false
Výjimky
Při analýze regulárního výrazu došlo k chybě.
input
nebo pattern
je null
.
options
není platná RegexOptions hodnota.
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) metody k určení, zda řetězec je platné číslo součásti. Regulární výraz předpokládá, že číslo dílu má specifický formát, který se skládá ze tří sad znaků oddělených spojovníky. První sada, která obsahuje čtyři znaky, musí obsahovat alfanumerický znak následovaný 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í mít tři číselné znaky následované alfanumerickým znakem.
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.
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 vzor regulárního výrazu interpretuje.
Vzor | Description |
---|---|
^ |
Zahajte shodu na začátku řetězce. |
[A-Z0-9] |
Porovná jednotlivé abecední znaky od A až do Z nebo libovolného číselného znaku. |
\d{2} |
Porovná dva číselné znaky. |
[A-Z0-9] |
Porovná všechny jednotlivé abecední znaky od A až do Z nebo libovolného číselného znaku. |
- |
Porovná spojovník. |
\d{3} |
Porovná přesně tři číselné znaky. |
(-\d{3}){2} |
Vyhledá spojovník následovaný třemi číselnými znaky a porovná dva výskyty tohoto vzoru. |
[A-Z0-9] |
Porovná všechny jednotlivé abecední znaky od A až do Z nebo libovolného číselného znaku. |
$ |
Ukončete shodu na konci řetězce. |
IsMatch(String, String, RegexOptions) Volání metody 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 pro metodu IsMatch(String, String) .
Poznámky
Metoda se IsMatch obvykle používá k ověření řetězce nebo k zajištění, že řetězec odpovídá určitému vzoru, aniž by se tento řetězec načítá 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číst pro následnou manipulaci, zavolejte metodu Match nebo Matches .
Statická IsMatch(String, String, RegexOptions) metoda je ekvivalentní ke konstrukci objektu se vzorem regulárního Regex výrazu určeným pomocí pattern
a možnostmi regulárního výrazu určenými options
a voláním IsMatch(String) metody instance. Tento vzor regulárního výrazu se ukládá do mezipaměti pro rychlé načtení 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í výrazy .NET a jazyk regulárních výrazů – stručné referenční informace.
Výjimka RegexMatchTimeoutException je vyvolána, pokud doba provádění odpovídající operace překročí interval časového limitu zadaného pro doménu aplikace, ve které je metoda volána. Pokud není ve vlastnostech domény aplikace definován žádný časový limit nebo pokud je Regex.InfiniteMatchTimeouthodnota časového limitu , nevyvolá se žádná výjimka.
Poznámky pro volající
Časový limit této metody vyprší po intervalu, který se rovná výchozí hodnotě časového limitu domény aplikace, ve které je volána. Pokud hodnota časového limitu nebyla definována pro doménu aplikace, 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)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
Určuje, jestli zadaný regulární výraz najde shodu v zadaném rozsahu vstupu pomocí zadaných možností shody.
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; v opačném případě . false
Výjimky
Při analýze regulárního výrazu došlo k chybě.
pattern
je null
Došlo k vypršení časového limitu.
options
není v platné RegexOptions hodnotě.
Platí pro
IsMatch(String, String)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
Určuje, jestli 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ý hledá shodu.
- pattern
- String
Vzor regulárního výrazu, který se má shodovat.
Návraty
true
Pokud regulární výraz najde shodu; v opačném případě . false
Výjimky
Při analýze regulárního výrazu došlo k chybě.
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) metody k určení, zda řetězec je platné číslo součásti. Regulární výraz předpokládá, že číslo dílu má specifický formát, který se skládá ze tří množin znaků oddělených spojovníky. První sada, která obsahuje čtyři znaky, musí obsahovat alfanumerický znak následovaný 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í mít tři číselné znaky následované alfanumerickým znakem.
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.
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 vzor regulárního výrazu interpretuje.
Vzor | Description |
---|---|
^ |
Začne shoda na začátku řádku. |
[a-zA-Z0-9] |
Porovná jeden znak abecedy (a prostřednictvím z nebo A prostřednictvím Z ) nebo číselný znak. |
\d{2} |
Porovná dva číselné znaky. |
[a-zA-Z0-9] |
Porovná jeden znak abecedy (a prostřednictvím z nebo A prostřednictvím Z ) nebo čí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áte dva výskyty tohoto vzoru. |
[a-zA-Z0-9] |
Porovná jeden znak abecedy (a prostřednictvím z nebo A prostřednictvím Z ) nebo číselný znak. |
$ |
Ukončit shodu na konci řádku. |
Poznámky
Metoda se IsMatch obvykle používá k ověření řetězce nebo k zajištění, že řetězec odpovídá určitému vzoru, aniž by se tento řetězec načítá 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číst pro následnou manipulaci, zavolejte metodu Match nebo Matches .
Statická IsMatch(String, String) metoda je ekvivalentní k vytvoření objektu Regex se vzorem regulárního výrazu určeným a pattern
voláním IsMatch(String) metody instance. Tento vzor regulárního výrazu se ukládá do mezipaměti pro rychlé načtení 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í výrazy .NET a jazyk regulárních výrazů – stručné referenční informace.
Výjimka RegexMatchTimeoutException je vyvolána, pokud doba provádění odpovídající operace překročí interval časového limitu zadaného pro doménu aplikace, ve které je metoda volána. Pokud není ve vlastnostech domény aplikace definován žádný časový limit nebo pokud je Regex.InfiniteMatchTimeouthodnota časového limitu , nevyvolá se žádná výjimka.
Poznámky pro volající
Tato metoda vyprší časový limit 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>, String)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
Určuje, jestli 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; v opačném případě . false
Výjimky
Při analýze regulárního výrazu došlo k chybě.
pattern
je null
Došlo k vypršení časového limitu.
Platí pro
IsMatch(ReadOnlySpan<Char>, Int32)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- 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 od nuly, na které se má zahájit hledání.
Návraty
true
Pokud regulární výraz najde shodu; v opačném případě . false
Výjimky
Došlo k vypršení časového limitu.
Platí pro
IsMatch(String)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- 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ý hledá shodu.
Návraty
true
Pokud regulární výraz najde shodu; v opačném případě . 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) metody k určení, zda řetězec je platné číslo součásti. Regulární výraz předpokládá, že číslo dílu má specifický formát, který se skládá ze tří množin znaků oddělených spojovníky. První sada, která obsahuje čtyři znaky, musí obsahovat alfanumerický znak následovaný 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í mít tři číselné znaky následované alfanumerickým znakem.
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.
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 vzor regulárního výrazu interpretuje.
Vzor | Description |
---|---|
^ |
Začne shoda na začátku řádku. |
[a-zA-Z0-9] |
Porovná jeden znak abecedy (a prostřednictvím z nebo A prostřednictvím Z ) nebo číselný znak. |
\d{2} |
Porovná dva číselné znaky. |
[a-zA-Z0-9] |
Porovná jeden znak abecedy (a prostřednictvím z nebo A prostřednictvím Z ) nebo čí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áte dva výskyty tohoto vzoru. |
[a-zA-Z0-9] |
Porovná jeden znak abecedy (a prostřednictvím z nebo A prostřednictvím Z ) nebo číselný znak. |
$ |
Ukončit shodu na konci řádku. |
Poznámky
Metoda se IsMatch obvykle používá k ověření řetězce nebo k zajištění, že řetězec odpovídá určitému vzoru, aniž by se tento řetězec načítá 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číst pro následnou manipulaci, zavolejte metodu Match nebo Matches .
Výjimka RegexMatchTimeoutException je vyvolána, pokud doba provádění odpovídající operace překročí interval časového limitu určeného konstruktorem Regex.Regex(String, RegexOptions, TimeSpan) . Pokud nenastavíte interval časového limitu při volání konstruktoru, je vyvolána výjimka, pokud operace překročí hodnotu časového limitu stanovenou pro doménu aplikace, ve které Regex je objekt vytvořen. Pokud není ve volání konstruktoru Regex nebo ve vlastnostech domény aplikace definován žádný časový limit nebo pokud je Regex.InfiniteMatchTimeouthodnota časového limitu , nevyvolá se žádná výjimka.
Viz také
Platí pro
IsMatch(ReadOnlySpan<Char>)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- 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; v opačném případě . false
Výjimky
Došlo k vypršení časového limitu.
Platí pro
IsMatch(String, Int32)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- 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ý hledá shodu.
- startat
- Int32
Pozice znaku, na které se má zahájit hledání.
Návraty
true
Pokud regulární výraz najde shodu; v opačném případě . 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) metody k určení, zda řetězec je platné číslo součásti. Vyhledá číslo dílu, který následuje za dvojtečku (:) znak v řetězci. Metoda IndexOf(Char) se používá k určení pozice znaku dvojtečky, která se pak předá IsMatch(String, Int32) metodě . Regulární výraz předpokládá, že číslo dílu má specifický formát, který se skládá ze tří množin znaků oddělených spojovníky. První sada, která obsahuje čtyři znaky, musí obsahovat alfanumerický znak následovaný 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í mít tři číselné znaky následované alfanumerickým znakem.
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.
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 vzor regulárního výrazu interpretuje.
Vzor | Description |
---|---|
[a-zA-Z0-9] |
Porovná jeden znak abecedy (a prostřednictvím z nebo A prostřednictvím Z ) nebo číselný znak. |
\d{2} |
Porovná dva číselné znaky. |
[a-zA-Z0-9] |
Porovná jeden znak abecedy (a prostřednictvím z nebo A prostřednictvím Z ) nebo čí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áte dva výskyty tohoto vzoru. |
[a-zA-Z0-9] |
Porovná jeden znak abecedy (a prostřednictvím z nebo A prostřednictvím Z ) nebo číselný znak. |
$ |
Ukončit shodu na konci řádku. |
Poznámky
Metoda se IsMatch obvykle používá k ověření řetězce nebo k zajištění, že řetězec odpovídá určitému vzoru, aniž by se tento řetězec načítá 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číst pro následnou manipulaci, zavolejte metodu Match nebo Matches .
Další podrobnosti o startat
nástroji najdete v části Poznámky v souboru Match(String, Int32).
Výjimka RegexMatchTimeoutException je vyvolána, pokud doba provádění odpovídající operace překročí interval časového limitu určeného konstruktorem Regex.Regex(String, RegexOptions, TimeSpan) . Pokud nenastavíte interval časového limitu při volání konstruktoru, je vyvolána výjimka, pokud operace překročí hodnotu časového limitu stanovenou pro doménu aplikace, ve které Regex je objekt vytvořen. Pokud není ve volání konstruktoru Regex nebo ve vlastnostech domény aplikace definován žádný časový limit nebo pokud je Regex.InfiniteMatchTimeouthodnota časového limitu , nevyvolá se žádná výjimka.
Viz také
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro