Regex.IsMatch Methode

Definitie

Geeft aan of de reguliere expressie een overeenkomst vindt in de invoertekenreeks.

Overloads

Name Description
IsMatch(String)

Geeft aan of de reguliere expressie die is opgegeven in de Regex constructor een overeenkomst vindt in een opgegeven invoertekenreeks.

IsMatch(String, Int32)

Geeft aan of de reguliere expressie die is opgegeven in de Regex constructor een overeenkomst vindt in de opgegeven invoertekenreeks, beginnend bij de opgegeven beginpositie in de tekenreeks.

IsMatch(String, String)

Geeft aan of de opgegeven reguliere expressie een overeenkomst vindt in de opgegeven invoertekenreeks.

IsMatch(String, String, RegexOptions)

Geeft aan of de opgegeven reguliere expressie een overeenkomst vindt in de opgegeven invoertekenreeks, met behulp van de opgegeven overeenkomende opties.

IsMatch(String, String, RegexOptions, TimeSpan)

Geeft aan of de opgegeven reguliere expressie een overeenkomst vindt in de opgegeven invoertekenreeks, met behulp van de opgegeven overeenkomende opties en time-outinterval.

IsMatch(String)

Geeft aan of de reguliere expressie die is opgegeven in de Regex constructor een overeenkomst vindt in een opgegeven invoertekenreeks.

public:
 bool IsMatch(System::String ^ input);
public bool IsMatch(string input);
member this.IsMatch : string -> bool
Public Function IsMatch (input As String) As Boolean

Parameters

input
String

De tekenreeks om naar een overeenkomst te zoeken.

Retouren

true als de reguliere expressie een overeenkomst vindt; anders, false.

Uitzonderingen

input is null.

Er is een time-out opgetreden. Zie de sectie Opmerkingen voor meer informatie over time-outs.

Voorbeelden

Het volgende voorbeeld illustreert het gebruik van de IsMatch(String) methode om te bepalen of een tekenreeks een geldig onderdeelnummer is. Bij de reguliere expressie wordt ervan uitgegaan dat het onderdeelnummer een specifieke notatie heeft die bestaat uit drie sets tekens, gescheiden door afbreekstreepjes. De eerste set, die vier tekens bevat, moet bestaan uit een alfanumerieke teken gevolgd door twee numerieke tekens gevolgd door een alfanumerieke teken. De tweede set, die uit drie tekens bestaat, moet numeriek zijn. De derde set, die uit vier tekens bestaat, moet drie numerieke tekens bevatten, gevolgd door een alfanumerieke teken.

string[] partNumbers = [ "1298-673-4192", "A08Z-931-468A",
                      "_A90-123-129X", "12345-KKA-1230",
                      "0919-2893-1256" ];
Regex rgx = new Regex(@"^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$");
foreach (string partNumber in partNumbers)
    Console.WriteLine($"{partNumber} {(rgx.IsMatch(partNumber) ? "is" : "is not")} a valid part number.");

// The example displays the following output:
//       1298-673-4192 is a valid part number.
//       A08Z-931-468A is a valid part number.
//       _A90-123-129X is not a valid part number.
//       12345-KKA-1230 is not a valid part number.
//       0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468A", _
                                      "_A90-123-129X", "12345-KKA-1230", _
                                      "0919-2893-1256" }
      Dim rgx As New Regex("^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$")
      For Each partNumber As String In partNumbers
         Console.WriteLine("{0} {1} a valid part number.", _
                           partNumber, _
                           IIF(rgx.IsMatch(partNumber), "is", "is not"))
      Next
   End Sub
End Module
' The example displays the following output:
'       1298-673-4192 is a valid part number.
'       A08Z-931-468A is a valid part number.
'       _A90-123-129X is not a valid part number.
'       12345-KKA-1230 is not a valid part number.
'       0919-2893-1256 is not a valid part number.

Het reguliere expressiepatroon is:

^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$

In de volgende tabel ziet u hoe het reguliere expressiepatroon wordt geïnterpreteerd.

Patroon Description
^ Begin de overeenkomst aan het begin van de regel.
[a-zA-Z0-9] Komt overeen met één alfabetisch teken (a door z of A door) Zof numeriek teken.
\d{2} Komt overeen met twee numerieke tekens.
[a-zA-Z0-9] Komt overeen met één alfabetisch teken (a door z of A door) Zof numeriek teken.
- Koppel een afbreekstreepje.
\d{3} Exact drie numerieke tekens.
(-\d{3}){2} Zoek een afbreekstreepje gevolgd door drie numerieke tekens en zoek twee exemplaren van dit patroon.
[a-zA-Z0-9] Komt overeen met één alfabetisch teken (a door z of A door) Zof numeriek teken.
$ Beëindig de overeenkomst aan het einde van de regel.

Opmerkingen

De IsMatch methode wordt meestal gebruikt om een tekenreeks te valideren of om ervoor te zorgen dat een tekenreeks voldoet aan een bepaald patroon zonder die tekenreeks op te halen voor latere manipulatie. Als u wilt bepalen of een of meer tekenreeksen overeenkomen met een normaal expressiepatroon en deze vervolgens ophaalt voor verdere manipulatie, roept u de Match of Matches methode aan.

De RegexMatchTimeoutException uitzondering wordt gegenereerd als de uitvoeringstijd van de overeenkomende bewerking de time-outinterval overschrijdt die is opgegeven door de Regex.Regex(String, RegexOptions, TimeSpan) constructor. Als u geen time-outinterval instelt wanneer u de constructor aanroept, wordt de uitzondering gegenereerd als de bewerking een time-outwaarde overschrijdt die is ingesteld voor het toepassingsdomein waarin het Regex-object wordt gemaakt. Als er geen time-out is gedefinieerd in de Regex constructor-aanroep of in de eigenschappen van het toepassingsdomein, of als de time-outwaarde is Regex.InfiniteMatchTimeout, wordt er geen uitzondering gegenereerd.

Zie ook

Van toepassing op

IsMatch(String, Int32)

Geeft aan of de reguliere expressie die is opgegeven in de Regex constructor een overeenkomst vindt in de opgegeven invoertekenreeks, beginnend bij de opgegeven beginpositie in de tekenreeks.

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

Parameters

input
String

De tekenreeks om naar een overeenkomst te zoeken.

startat
Int32

De positie van het teken waarop de zoekopdracht moet worden gestart.

Retouren

true als de reguliere expressie een overeenkomst vindt; anders, false.

Uitzonderingen

input is null.

startat is kleiner dan nul of groter dan de lengte van input.

Er is een time-out opgetreden. Zie de sectie Opmerkingen voor meer informatie over time-outs.

Voorbeelden

Het volgende voorbeeld illustreert het gebruik van de IsMatch(String, Int32) methode om te bepalen of een tekenreeks een geldig onderdeelnummer is. Er wordt gezocht naar een onderdeelnummer dat een dubbele punt volgt (:) teken in een tekenreeks. De IndexOf(Char) methode wordt gebruikt om de positie van het dubbele punt te bepalen, die vervolgens wordt doorgegeven aan de IsMatch(String, Int32) methode. Bij de reguliere expressie wordt ervan uitgegaan dat het onderdeelnummer een specifieke notatie heeft die bestaat uit drie sets tekens, gescheiden door afbreekstreepjes. De eerste set, die vier tekens bevat, moet bestaan uit een alfanumerieke teken gevolgd door twee numerieke tekens gevolgd door een alfanumerieke teken. De tweede set, die uit drie tekens bestaat, moet numeriek zijn. De derde set, die uit vier tekens bestaat, moet drie numerieke tekens bevatten, gevolgd door een alfanumerieke teken.

string[] partNumbers = [ "Part Number: 1298-673-4192", "Part No: A08Z-931-468A",
                      "_A90-123-129X", "123K-000-1230",
                      "SKU: 0919-2893-1256" ];
Regex rgx = MyRegex();
foreach (string partNumber in partNumbers)
{
    int start = partNumber.IndexOf(':');
    if (start >= 0)
    {
        Console.WriteLine($"{partNumber} {(rgx.IsMatch(partNumber, start) ? "is" : "is not")} a valid part number.");
    }
    else
    {
        Console.WriteLine("Cannot find starting position in {0}.", partNumber);
    }
}

// The example displays the following output:
//       Part Number: 1298-673-4192 is a valid part number.
//       Part No: A08Z-931-468A is a valid part number.
//       Cannot find starting position in _A90-123-129X.
//       Cannot find starting position in 123K-000-1230.
//       SKU: 0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim partNumbers() As String = { "Part Number: 1298-673-4192", "Part No: A08Z-931-468A", _
                                      "_A90-123-129X", "123K-000-1230", _
                                      "SKU: 0919-2893-1256" }
      Dim rgx As New Regex("[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$")
      For Each partNumber As String In partNumbers
         Dim start As Integer = partNumber.IndexOf(":"c)
         If start >= 0 Then 
            Console.WriteLine("{0} {1} a valid part number.", _
                              partNumber, _
                              IIF(rgx.IsMatch(partNumber, start), "is", "is not"))
         Else
            Console.WriteLine("Cannot find starting position in {0}.", partNumber)
         End If                              
      Next
   End Sub
End Module
' The example displays the following output:
'       Part Number: 1298-673-4192 is a valid part number.
'       Part No: A08Z-931-468A is a valid part number.
'       Cannot find starting position in _A90-123-129X.
'       Cannot find starting position in 123K-000-1230.
'       SKU: 0919-2893-1256 is not a valid part number.

Het reguliere expressiepatroon is:

[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$

In de volgende tabel ziet u hoe het reguliere expressiepatroon wordt geïnterpreteerd.

Patroon Description
[a-zA-Z0-9] Komt overeen met één alfabetisch teken (a door z of A door) Zof numeriek teken.
\d{2} Komt overeen met twee numerieke tekens.
[a-zA-Z0-9] Komt overeen met één alfabetisch teken (a door z of A door) Zof numeriek teken.
- Koppel een afbreekstreepje.
\d{3} Exact drie numerieke tekens.
(-\d{3}){2} Zoek een afbreekstreepje gevolgd door drie numerieke tekens en zoek twee exemplaren van dit patroon.
[a-zA-Z0-9] Komt overeen met één alfabetisch teken (a door z of A door) Zof numeriek teken.
$ Beëindig de overeenkomst aan het einde van de regel.

Opmerkingen

De IsMatch methode wordt meestal gebruikt om een tekenreeks te valideren of om ervoor te zorgen dat een tekenreeks voldoet aan een bepaald patroon zonder die tekenreeks op te halen voor latere manipulatie. Als u wilt bepalen of een of meer tekenreeksen overeenkomen met een normaal expressiepatroon en deze vervolgens ophaalt voor verdere manipulatie, roept u de Match of Matches methode aan.

startatZie de sectie Opmerkingen van Match(String, Int32).

De RegexMatchTimeoutException uitzondering wordt gegenereerd als de uitvoeringstijd van de overeenkomende bewerking de time-outinterval overschrijdt die is opgegeven door de Regex.Regex(String, RegexOptions, TimeSpan) constructor. Als u geen time-outinterval instelt wanneer u de constructor aanroept, wordt de uitzondering gegenereerd als de bewerking een time-outwaarde overschrijdt die is ingesteld voor het toepassingsdomein waarin het Regex-object wordt gemaakt. Als er geen time-out is gedefinieerd in de Regex constructor-aanroep of in de eigenschappen van het toepassingsdomein, of als de time-outwaarde is Regex.InfiniteMatchTimeout, wordt er geen uitzondering gegenereerd.

Zie ook

Van toepassing op

IsMatch(String, String)

Geeft aan of de opgegeven reguliere expressie een overeenkomst vindt in de opgegeven invoertekenreeks.

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

Parameters

input
String

De tekenreeks om naar een overeenkomst te zoeken.

pattern
String

Het reguliere expressiepatroon dat moet overeenkomen.

Retouren

true als de reguliere expressie een overeenkomst vindt; anders, false.

Uitzonderingen

Er is een reguliere expressieparseringsfout opgetreden.

input of pattern is null.

Er is een time-out opgetreden. Zie de sectie Opmerkingen voor meer informatie over time-outs.

Voorbeelden

Het volgende voorbeeld illustreert het gebruik van de IsMatch(String, String) methode om te bepalen of een tekenreeks een geldig onderdeelnummer is. Bij de reguliere expressie wordt ervan uitgegaan dat het onderdeelnummer een specifieke notatie heeft die bestaat uit drie sets tekens, gescheiden door afbreekstreepjes. De eerste set, die vier tekens bevat, moet bestaan uit een alfanumerieke teken gevolgd door twee numerieke tekens gevolgd door een alfanumerieke teken. De tweede set, die uit drie tekens bestaat, moet numeriek zijn. De derde set, die uit vier tekens bestaat, moet drie numerieke tekens bevatten, gevolgd door een alfanumerieke teken.

string[] partNumbers = [ "1298-673-4192", "A08Z-931-468A",
                      "_A90-123-129X", "12345-KKA-1230",
                      "0919-2893-1256" ];
string pattern = @"^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$";
foreach (string partNumber in partNumbers)
    Console.WriteLine($"{partNumber} {(Regex.IsMatch(partNumber, pattern) ? "is" : "is not")} " +
        $"a valid part number.");

// The example displays the following output:
//       1298-673-4192 is a valid part number.
//       A08Z-931-468A is a valid part number.
//       _A90-123-129X is not a valid part number.
//       12345-KKA-1230 is not a valid part number.
//       0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468A", _
                                      "_A90-123-129X", "12345-KKA-1230", _
                                      "0919-2893-1256" }
      Dim pattern As String = "^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$"
      For Each partNumber As String In partNumbers
         Console.WriteLine("{0} {1} a valid part number.", _
                           partNumber, _
                           IIF(Regex.IsMatch(partNumber, pattern), "is", "is not"))
      Next
   End Sub
End Module
' The example displays the following output:
'       1298-673-4192 is a valid part number.
'       A08Z-931-468A is a valid part number.
'       _A90-123-129X is not a valid part number.
'       12345-KKA-1230 is not a valid part number.
'       0919-2893-1256 is not a valid part number.

Het reguliere expressiepatroon is:

^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$

In de volgende tabel ziet u hoe het reguliere expressiepatroon wordt geïnterpreteerd.

Patroon Description
^ Begin de overeenkomst aan het begin van de regel.
[a-zA-Z0-9] Komt overeen met één alfabetisch teken (a door z of A door) Zof numeriek teken.
\d{2} Komt overeen met twee numerieke tekens.
[a-zA-Z0-9] Komt overeen met één alfabetisch teken (a door z of A door) Zof numeriek teken.
- Koppel een afbreekstreepje.
\d{3} Exact drie numerieke tekens.
(-\d{3}){2} Zoek een afbreekstreepje gevolgd door drie numerieke tekens en zoek twee exemplaren van dit patroon.
[a-zA-Z0-9] Komt overeen met één alfabetisch teken (a door z of A door) Zof numeriek teken.
$ Beëindig de overeenkomst aan het einde van de regel.

Opmerkingen

De IsMatch methode wordt meestal gebruikt om een tekenreeks te valideren of om ervoor te zorgen dat een tekenreeks voldoet aan een bepaald patroon zonder die tekenreeks op te halen voor latere manipulatie. Als u wilt bepalen of een of meer tekenreeksen overeenkomen met een normaal expressiepatroon en deze vervolgens ophaalt voor verdere manipulatie, roept u de Match of Matches methode aan.

De statische IsMatch(String, String) methode is gelijk aan het maken van een Regex object met het reguliere expressiepatroon dat is opgegeven door pattern en het aanroepen van de IsMatch(String) instantiemethode. Dit reguliere expressiepatroon wordt opgeslagen in de cache voor snelle ophaaltijd door de engine voor reguliere expressies.

De pattern parameter bestaat uit reguliere expressietaalelementen die de tekenreeks symbolisch beschrijven die overeenkomen. Zie .NET Reguliere expressies en Regular Expression Language - Quick Reference voor meer informatie over reguliere expressies.

De RegexMatchTimeoutException uitzondering wordt gegenereerd als de uitvoeringstijd van de overeenkomende bewerking het time-outinterval overschrijdt dat is opgegeven voor het toepassingsdomein waarin de methode wordt aangeroepen. Als er geen time-out is gedefinieerd in de eigenschappen van het toepassingsdomein of als de time-outwaarde is Regex.InfiniteMatchTimeout, wordt er geen uitzondering gegenereerd.

Notities voor bellers

Deze methode treedt op na een interval dat gelijk is aan de standaardtime-outwaarde van het toepassingsdomein waarin de methode wordt aangeroepen. Als er geen time-outwaarde is gedefinieerd voor het toepassingsdomein, wordt de waarde InfiniteMatchTimeout, waardoor er geen time-out optreedt voor de methode, gebruikt. De aanbevolen statische methode voor het verifiëren van een patroonovereenkomst is IsMatch(String, String, RegexOptions, TimeSpan), waarmee u het time-outinterval kunt instellen.

Zie ook

Van toepassing op

IsMatch(String, String, RegexOptions)

Geeft aan of de opgegeven reguliere expressie een overeenkomst vindt in de opgegeven invoertekenreeks, met behulp van de opgegeven overeenkomende opties.

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

Parameters

input
String

De tekenreeks om naar een overeenkomst te zoeken.

pattern
String

Het reguliere expressiepatroon dat moet overeenkomen.

options
RegexOptions

Een bitsgewijze combinatie van de opsommingswaarden die opties bieden voor overeenkomende waarden.

Retouren

true als de reguliere expressie een overeenkomst vindt; anders, false.

Uitzonderingen

Er is een reguliere expressieparseringsfout opgetreden.

input of pattern is null.

options is geen geldige RegexOptions waarde.

Er is een time-out opgetreden. Zie de sectie Opmerkingen voor meer informatie over time-outs.

Voorbeelden

Het volgende voorbeeld illustreert het gebruik van de IsMatch(String, String) methode om te bepalen of een tekenreeks een geldig onderdeelnummer is. Bij de reguliere expressie wordt ervan uitgegaan dat het onderdeelnummer een specifieke notatie heeft die bestaat uit drie sets tekens, gescheiden door afbreekstreepjes. De eerste set, die vier tekens bevat, moet bestaan uit een alfanumerieke teken gevolgd door twee numerieke tekens gevolgd door een alfanumerieke teken. De tweede set, die uit drie tekens bestaat, moet numeriek zijn. De derde set, die uit vier tekens bestaat, moet drie numerieke tekens bevatten, gevolgd door een alfanumerieke teken.

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.

Het reguliere expressiepatroon is:

^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$

In de volgende tabel ziet u hoe het reguliere expressiepatroon wordt geïnterpreteerd.

Patroon Description
^ Begin met het zoeken naar overeenkomsten aan het begin van de tekenreeks.
[A-Z0-9] Komt overeen met één alfabetisch teken van A tot en met Zeen numeriek teken.
\d{2} Komt overeen met twee numerieke tekens.
[A-Z0-9] Komt overeen met één alfabetisch teken van A tot en met Zeen numeriek teken.
- Koppel een afbreekstreepje.
\d{3} Exact drie numerieke tekens.
(-\d{3}){2} Zoek een afbreekstreepje gevolgd door drie numerieke tekens en zoek twee exemplaren van dit patroon.
[A-Z0-9] Komt overeen met één alfabetisch teken van A tot en met Zeen numeriek teken.
$ Eindig de match aan het einde van de tekenreeks.

Het aanroepen van de IsMatch(String, String, RegexOptions) methode met de options parameterset RegexOptions.IgnoreCase is gelijk aan het definiëren van de volgende reguliere expressie:

[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]

Zie het voorbeeld voor de IsMatch(String, String) methode ter vergelijking.

Opmerkingen

De IsMatch methode wordt meestal gebruikt om een tekenreeks te valideren of om ervoor te zorgen dat een tekenreeks voldoet aan een bepaald patroon zonder die tekenreeks op te halen voor latere manipulatie. Als u wilt bepalen of een of meer tekenreeksen overeenkomen met een normaal expressiepatroon en deze vervolgens ophaalt voor verdere manipulatie, roept u de Match of Matches methode aan.

De statische IsMatch(String, String, RegexOptions) methode is gelijk aan het maken van een Regex object met het reguliere expressiepatroon dat is opgegeven door pattern en de reguliere expressieopties die zijn opgegeven door options en het aanroepen van de IsMatch(String) instantiemethode. Dit reguliere expressiepatroon wordt opgeslagen in de cache voor snelle ophaaltijd door de engine voor reguliere expressies.

De pattern parameter bestaat uit reguliere expressietaalelementen die de tekenreeks symbolisch beschrijven die overeenkomen. Zie .NET Reguliere expressies en Regular Expression Language - Quick Reference voor meer informatie over reguliere expressies.

De RegexMatchTimeoutException uitzondering wordt gegenereerd als de uitvoeringstijd van de overeenkomende bewerking het time-outinterval overschrijdt dat is opgegeven voor het toepassingsdomein waarin de methode wordt aangeroepen. Als er geen time-out is gedefinieerd in de eigenschappen van het toepassingsdomein of als de time-outwaarde is Regex.InfiniteMatchTimeout, wordt er geen uitzondering gegenereerd.

Notities voor bellers

Deze methode treedt op na een interval dat gelijk is aan de standaardtime-outwaarde van het toepassingsdomein waarin deze wordt aangeroepen. Als er geen time-outwaarde is gedefinieerd voor het toepassingsdomein, wordt de waarde InfiniteMatchTimeout, waardoor er geen time-out optreedt voor de methode, gebruikt. De aanbevolen statische methode voor het verifiëren van een patroonovereenkomst is IsMatch(String, String, RegexOptions, TimeSpan), waarmee u het time-outinterval kunt instellen.

Zie ook

Van toepassing op

IsMatch(String, String, RegexOptions, TimeSpan)

Geeft aan of de opgegeven reguliere expressie een overeenkomst vindt in de opgegeven invoertekenreeks, met behulp van de opgegeven overeenkomende opties en time-outinterval.

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

Parameters

input
String

De tekenreeks om naar een overeenkomst te zoeken.

pattern
String

Het reguliere expressiepatroon dat moet overeenkomen.

options
RegexOptions

Een bitsgewijze combinatie van de opsommingswaarden die opties bieden voor overeenkomende waarden.

matchTimeout
TimeSpan

Een time-outinterval of InfiniteMatchTimeout om aan te geven dat er geen time-out optreedt voor de methode.

Retouren

true als de reguliere expressie een overeenkomst vindt; anders, false.

Uitzonderingen

Er is een reguliere expressieparseringsfout opgetreden.

input of pattern is null.

options is geen geldige RegexOptions waarde.

– of –

matchTimeout is negatief, nul of groter dan ongeveer 24 dagen.

Er is een time-out opgetreden.

Voorbeelden

Het volgende voorbeeld illustreert het gebruik van de IsMatch(String, String, RegexOptions, TimeSpan) methode om te bepalen of een tekenreeks een geldig onderdeelnummer is. Bij de reguliere expressie wordt ervan uitgegaan dat het onderdeelnummer een specifieke notatie heeft die bestaat uit drie sets tekens, gescheiden door afbreekstreepjes. De eerste set, die vier tekens bevat, moet bestaan uit een alfanumerieke teken gevolgd door twee numerieke tekens gevolgd door een alfanumerieke teken. De tweede set, die uit drie tekens bestaat, moet numeriek zijn. De derde set, die uit vier tekens bestaat, moet drie numerieke tekens bevatten, gevolgd door een alfanumerieke teken. Bij het overeenkomen van het reguliere expressiepatroon moet minimaal worden gezocht in de invoertekenreeks, dus de methode stelt een time-outinterval van 500 milliseconden in.

string[] partNumbers = [ "1298-673-4192", "A08Z-931-468a",
                      "_A90-123-129X", "12345-KKA-1230",
                      "0919-2893-1256" ];
string pattern = @"^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$";
foreach (string partNumber in partNumbers)
    try
    {
        bool isMatch = Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(500));
        Console.WriteLine($"{partNumber} {(isMatch ? "is" : "is not")} a valid part number.");
    }
    catch (RegexMatchTimeoutException e)
    {
        Console.WriteLine($"Timeout after {e.MatchTimeout} seconds matching {e.Input}.");
    }

// The example displays the following output:
//       1298-673-4192 is a valid part number.
//       A08Z-931-468a is a valid part number.
//       _A90-123-129X is not a valid part number.
//       12345-KKA-1230 is not a valid part number.
//       0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468a", 
                                      "_A90-123-129X", "12345-KKA-1230", 
                                      "0919-2893-1256" }
      Dim pattern As String = "^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$"
      For Each partNumber As String In partNumbers
         Try
            Console.WriteLine("{0} {1} a valid part number.", 
                              partNumber, _
                              IIF(Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase), _
                                  "is", "is not"),
                              TimeSpan.FromMilliseconds(500))
         Catch e As RegexMatchTimeoutException
            Console.WriteLine("Timeout after {0} seconds matching {1}.",
                              e.MatchTimeout, e.Input)
         End Try
      Next
   End Sub
End Module
' The example displays the following output:
'       1298-673-4192 is a valid part number.
'       A08Z-931-468a is a valid part number.
'       _A90-123-129X is not a valid part number.
'       12345-KKA-1230 is not a valid part number.
'       0919-2893-1256 is not a valid part number.

Het reguliere expressiepatroon is:

^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$

In de volgende tabel ziet u hoe het reguliere expressiepatroon wordt geïnterpreteerd.

Patroon Description
^ Begin met het zoeken naar overeenkomsten aan het begin van de tekenreeks.
[A-Z0-9] Komt overeen met één alfabetisch teken van A tot en met Zeen numeriek teken.
\d{2} Komt overeen met twee numerieke tekens.
[A-Z0-9] Komt overeen met één alfabetisch teken van A tot en met Zeen numeriek teken.
- Koppel een afbreekstreepje.
\d{3} Exact drie numerieke tekens.
(-\d{3}){2} Zoek een afbreekstreepje gevolgd door drie numerieke tekens en zoek twee exemplaren van dit patroon.
[A-Z0-9] Komt overeen met één alfabetisch teken van A tot en met Zeen numeriek teken.
$ Eindig de match aan het einde van de tekenreeks.

Het aanroepen van de IsMatch(String, String, RegexOptions, TimeSpan) methode met de options parameterset RegexOptions.IgnoreCase is gelijk aan het definiëren van de volgende reguliere expressie:

[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]

Zie het voorbeeld voor de IsMatch(String, String) methode ter vergelijking.

Opmerkingen

De IsMatch methode wordt meestal gebruikt om een tekenreeks te valideren of om ervoor te zorgen dat een tekenreeks voldoet aan een bepaald patroon zonder die tekenreeks op te halen voor latere manipulatie. Als u wilt bepalen of een of meer tekenreeksen overeenkomen met een normaal expressiepatroon en deze vervolgens ophaalt voor verdere manipulatie, roept u de Match of Matches methode aan.

De statische IsMatch(String, String, RegexOptions, TimeSpan) methode is gelijk aan het maken van een Regex object met het reguliere expressiepatroon dat is opgegeven door pattern en de reguliere expressieopties die zijn opgegeven door options en het aanroepen van de IsMatch(String) instantiemethode. Dit reguliere expressiepatroon wordt opgeslagen in de cache voor snelle ophaaltijd door de engine voor reguliere expressies.

De pattern parameter bestaat uit reguliere expressietaalelementen die de tekenreeks symbolisch beschrijven die overeenkomen. Zie .NET Reguliere expressies en Regular Expression Language - Quick Reference voor meer informatie over reguliere expressies.

De matchTimeout parameter geeft aan hoe lang een patroonkoppelingsmethode moet proberen een overeenkomst te vinden voordat er een time-out optreedt. Als u een time-outinterval instelt, voorkomt u dat reguliere expressies die afhankelijk zijn van overmatige backtracking niet meer reageren wanneer ze invoer verwerken die bijna overeenkomsten bevat. Zie Aanbevolen procedures voor reguliere expressies en backtracking voor meer informatie. Als er in dat tijdsinterval geen overeenkomst wordt gevonden, genereert de methode een RegexMatchTimeoutException uitzondering. matchTimeout overschrijft een standaardtime-outwaarde die is gedefinieerd voor het toepassingsdomein waarin de methode wordt uitgevoerd.

Notities voor bellers

U wordt aangeraden de matchTimeout parameter in te stellen op een geschikte waarde, zoals twee seconden. Als u time-outs uitschakelt door op te InfiniteMatchTimeoutgeven, biedt de reguliere expressie-engine iets betere prestaties. Schakel echter alleen time-outs uit onder de volgende voorwaarden:

  • Wanneer de invoer die door een reguliere expressie wordt verwerkt, wordt afgeleid van een bekende en vertrouwde bron of bestaat uit statische tekst. Dit sluit tekst uit die dynamisch door gebruikers is ingevoerd.

  • Wanneer het reguliere expressiepatroon grondig is getest om ervoor te zorgen dat er efficiënt overeenkomsten, niet-overeenkomsten en bijna-overeenkomsten worden verwerkt.

  • Wanneer het reguliere expressiepatroon geen taalelementen bevat die bekend zijn dat ze overmatige backtracking veroorzaken bij het verwerken van een bijna-overeenkomst.

Zie ook

Van toepassing op