Sdílet prostřednictvím


Regex.IsMatch Metoda

Definice

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.

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 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 AZnebo libovolný číselný znak.
\d{2} Porovná dva číselné znaky.
[A-Z0-9] Porovná libovolný jeden abecední znak z AZnebo 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 AZnebo 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.

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 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 AZnebo libovolný číselný znak.
\d{2} Porovná dva číselné znaky.
[A-Z0-9] Porovná libovolný jeden abecední znak z AZnebo 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 AZnebo 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.

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 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 AZ) nebo číselného znaku.
\d{2} Porovná dva číselné znaky.
[a-zA-Z0-9] Porovná jeden abecední znak (a prostřednictvím z nebo AZ) 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 AZ) 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.

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 interpretuje vzor regulárního výrazu.

Vzor Popis
[a-zA-Z0-9] Porovná jeden abecední znak (a prostřednictvím z nebo AZ) nebo číselného znaku.
\d{2} Porovná dva číselné znaky.
[a-zA-Z0-9] Porovná jeden abecední znak (a prostřednictvím z nebo AZ) 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 AZ) 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 startatnaleznete 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.

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 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 AZ) nebo číselného znaku.
\d{2} Porovná dva číselné znaky.
[a-zA-Z0-9] Porovná jeden abecední znak (a prostřednictvím z nebo AZ) 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 AZ) 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.

Platí pro