Regex.IsMatch Metoda

Definice

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

truepokud 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 Znebo libovolného číselného znaku.
\d{2} Porovná dva číselné znaky.
[A-Z0-9] Porovná jednotlivé abecední znaky od A až do Znebo 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 Znebo 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

truepokud 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

truePokud 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 Znebo libovolného číselného znaku.
\d{2} Porovná dva číselné znaky.
[A-Z0-9] Porovná všechny jednotlivé abecední znaky od A až do Znebo 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 Znebo 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

truePokud 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

truePokud 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

truePokud 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

truePokud 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

truePokud 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

truePokud 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

truePokud regulární výraz najde shodu; v opačném případě . false

Výjimky

input je null.

startatje 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 startatná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