Taal

Regex.Match Methode

Definitie

Zoekt in een invoertekenreeks naar een subtekenreeks die overeenkomt met een normaal expressiepatroon en retourneert het eerste exemplaar als één Match object.

Overloads

Name Description
Match(String)

Hiermee wordt gezocht naar de opgegeven invoertekenreeks voor het eerste exemplaar van de reguliere expressie die is opgegeven in de Regex constructor.

Match(String, Int32)

Zoekt in de invoertekenreeks naar het eerste exemplaar van een reguliere expressie, beginnend bij de opgegeven beginpositie in de tekenreeks.

Match(String, String)

Hiermee wordt gezocht naar de opgegeven invoertekenreeks voor het eerste exemplaar van de opgegeven reguliere expressie.

Match(String, Int32, Int32)

Zoekt in de invoertekenreeks naar het eerste exemplaar van een reguliere expressie, beginnend bij de opgegeven beginpositie en zoekt alleen het opgegeven aantal tekens.

Match(String, String, RegexOptions)

Zoekt in de invoertekenreeks naar het eerste exemplaar van de opgegeven reguliere expressie, met behulp van de opgegeven overeenkomende opties.

Match(String, String, RegexOptions, TimeSpan)

Zoekt in de invoertekenreeks naar het eerste exemplaar van de opgegeven reguliere expressie, met behulp van de opgegeven overeenkomende opties en time-outinterval.

Match(String)

Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs

Hiermee wordt gezocht naar de opgegeven invoertekenreeks voor het eerste exemplaar van de reguliere expressie die is opgegeven in de Regex constructor.

public:
 System::Text::RegularExpressions::Match ^ Match(System::String ^ input);
public System.Text.RegularExpressions.Match Match(string input);
member this.Match : string -> System.Text.RegularExpressions.Match
Public Function Match (input As String) As Match

Parameters

input
String

De tekenreeks om naar een overeenkomst te zoeken.

Retouren

Een object dat informatie over de overeenkomst bevat.

Uitzonderingen

input is null.

Er is een time-out opgetreden.

Opmerkingen

De Match(String) methode retourneert de eerste subtekenreeks die overeenkomt met een normaal expressiepatroon in een invoertekenreeks.

U kunt bepalen of het reguliere expressiepatroon is gevonden in de invoertekenreeks door de eigenschap van Success het geretourneerde Match object te controleren. Als er een overeenkomst wordt gevonden, bevat de eigenschap van Value het geretourneerde Match object de overeenkomende subtekenreeks. Als er geen overeenkomst wordt gevonden, is de waarde Empty.

Deze methode retourneert de eerste overeenkomst. U kunt volgende overeenkomsten ophalen door de Match-methode van het geretourneerde object NextMatch() herhaaldelijk aan te roepen. U kunt ook alle overeenkomsten in één methode-aanroep ophalen door aan te roepen Matches(String).

De RegexMatchTimeoutException uitzondering wordt gegenereerd als de uitvoeringstijd van de overeenkomende bewerking de time-outinterval overschrijdt die is opgegeven door de 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 InfiniteMatchTimeout, wordt er geen uitzondering gegenereerd.

Zie ook

Van toepassing op

Match(String, Int32)

Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs

Zoekt in de invoertekenreeks naar het eerste exemplaar van een reguliere expressie, beginnend bij de opgegeven beginpositie in de tekenreeks.

public:
 System::Text::RegularExpressions::Match ^ Match(System::String ^ input, int startat);
public System.Text.RegularExpressions.Match Match(string input, int startat);
member this.Match : string * int -> System.Text.RegularExpressions.Match
Public Function Match (input As String, startat As Integer) As Match

Parameters

input
String

De tekenreeks om naar een overeenkomst te zoeken.

startat
Int32

De op nul gebaseerde tekenpositie waarop de zoekopdracht moet worden gestart.

Retouren

Een object dat informatie over de overeenkomst bevat.

Uitzonderingen

input is null.

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

Er is een time-out opgetreden.

Opmerkingen

De methode Match(String, Int32) retourneert de eerste subtekenreeks die overeenkomt met een normaal expressiepatroon, beginnend bij of na de positie van het startat teken, in een invoertekenreeks. Het reguliere expressiepatroon waarvoor met de Match(String, Int32) methode wordt gezocht, wordt gedefinieerd door de aanroep naar een van de Regex klasseconstructors. Zie Regular Expression Language - Quick Referencevoor meer informatie over de taalelementen die worden gebruikt om een normaal expressiepatroon te maken.

De startat parameter

Gebruik de startat parameter om de tekenpositie op te geven waarop de zoekopdracht wordt gestart. In een zoekopdracht van links naar rechts worden alle overeenkomsten die eerder startat in de tekenreeks beginnen genegeerd. Als u op de standaardpositie wilt beginnen, gebruikt u de Match(String) overbelasting (of geeft u 0 door voor een zoekactie van links naar rechts en input.Length naar rechts naar links). Ondanks het starten van de zoekopdracht bij startat, is de index van een geretourneerde overeenkomst relatief ten opzichte van het begin van de tekenreeks.

Hoewel de motor voor reguliere expressies geen overeenkomst retourneert die vóór startatbegint, negeert deze de tekenreeks niet vóór startat. Dit betekent dat asserties zoals ankers of lookbehind-asserties nog steeds van toepassing zijn op de invoer als een geheel. De volgende code bevat bijvoorbeeld een patroon met een lookbehind-assertie die tevreden is, zelfs als deze plaatsvindt vóór de startat index van 5 in de invoertekenreeks.

string input = "Zip code: 98052";
var regex = new Regex(@"(?<=Zip code: )\d{5}");
Match match = regex.Match(input, 5);
if (match.Success)
{
    Console.WriteLine($"Match found: {match.Value}");
}

// This code prints the following output:
//
// Match found: 98052

Tip

  • Als een patroon begint met het ^ anker, startat groter is dan 0 en de reguliere expressie niet wordt gebruikt RegexOptions.Multiline, worden er nooit overeenkomsten gevonden omdat ze worden beperkt door ^ te beginnen bij index 0.
  • Het \G anker is tevreden over startat. Omdat u hierdoor een overeenkomst wilt beperken zodat deze exact begint bij een bepaalde tekenpositie in de tekenreeks, veranker de reguliere expressie met een \G aan de linkerkant voor een patroon van links naar rechts. Hierdoor wordt de match beperkt, zodat deze exact moet aanvangen bij startat (of, wanneer meerdere matches gewenst zijn, zodat de matches aaneengesloten moeten zijn).

Zoekopdrachten van rechts naar links

Een van rechts naar links zoeken, dat wil gezegd, wanneer het reguliere expressiepatroon wordt samengesteld met de optie RegexOptions.RightToLeft, gedraagt zich op de volgende manieren:

  • De scan wordt in de tegenovergestelde richting verplaatst en het patroon wordt van achter (rechts) naar voor (links) vergeleken.
  • De standaardstartpositie is het rechtereinde van de invoertekenreeks.
  • Als startat is opgegeven, begint de scan van rechts naar links bij het teken op startat - 1 (niet startat).
  • Wanneer het \G anker aan de rechterkant van een patroon wordt opgegeven, wordt de (eerste) overeenkomst beperkt tot exact eindigen op startat - 1.

Zie Van rechts naar linksvoor meer informatie over zoekopdrachten van rechts naar links.

Bepalen of er een overeenkomst is gevonden

U kunt bepalen of het reguliere expressiepatroon is gevonden in de invoerstring door de waarde van de Match eigenschap van het geretourneerde Success object te controleren. Als er een overeenkomst wordt gevonden, bevat de geretourneerde eigenschap Match object Value de subtekenreeks uit input die overeenkomt met het reguliere expressiepatroon. Als er geen overeenkomst wordt gevonden, is de waarde String.Empty.

Eerste of meerdere overeenkomsten

Deze methode retourneert de eerste subtekenreeks die is gevonden door te scannen input vanaf de startat positie (of, voor zoekopdrachten naar rechts naar links, op startat - 1) die overeenkomt met het reguliere expressiepatroon. U kunt volgende overeenkomsten ophalen door de Match-methode van het geretourneerde object Match.NextMatch herhaaldelijk aan te roepen. U kunt ook alle overeenkomsten in één methode-aanroep ophalen door de Regex.Matches(String, Int32)-methode aan te roepen.

Time-out uitzonderingen

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

Match(String, String)

Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs

Hiermee wordt gezocht naar de opgegeven invoertekenreeks voor het eerste exemplaar van de opgegeven reguliere expressie.

public:
 static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern);
public static System.Text.RegularExpressions.Match Match(string input, string pattern);
static member Match : string * string -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String) As Match

Parameters

input
String

De tekenreeks om naar een overeenkomst te zoeken.

pattern
String

Het reguliere expressiepatroon dat moet overeenkomen.

Retouren

Een object dat informatie over de overeenkomst bevat.

Uitzonderingen

Er is een reguliere expressieparseringsfout opgetreden.

input of pattern is null.

Er is een time-out opgetreden.

Opmerkingen

De statische Match(String, String) methode is gelijk aan het maken van een Regex object met het opgegeven patroon en het aanroepen van de instantiemethode Match(String) . De engine voor reguliere expressies slaat het patroon in de cache op.

U kunt bepalen of het reguliere expressiepatroon is gevonden in de invoertekenreeks door de eigenschap van Success het geretourneerde Match object te controleren. Als er een overeenkomst wordt gevonden, bevat de eigenschap van Value het geretourneerde Match object de overeenkomende subtekenreeks. Als er geen overeenkomst wordt gevonden, is de waarde Empty.

U kunt volgende overeenkomsten ophalen door de Match-methode van het geretourneerde object NextMatch() herhaaldelijk aan te roepen. U kunt ook alle overeenkomsten in één methode-aanroep ophalen door de Matches(String, String)-methode aan te roepen.

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 ophalen van een patroonovereenkomst is Match(String, String), waarmee u het time-outinterval kunt instellen.

Zie ook

Van toepassing op

Match(String, Int32, Int32)

Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs

Zoekt in de invoertekenreeks naar het eerste exemplaar van een reguliere expressie, beginnend bij de opgegeven beginpositie en zoekt alleen het opgegeven aantal tekens.

public:
 System::Text::RegularExpressions::Match ^ Match(System::String ^ input, int beginning, int length);
public System.Text.RegularExpressions.Match Match(string input, int beginning, int length);
member this.Match : string * int * int -> System.Text.RegularExpressions.Match
Public Function Match (input As String, beginning As Integer, length As Integer) As Match

Parameters

input
String

De tekenreeks om naar een overeenkomst te zoeken.

beginning
Int32

De op nul gebaseerde tekenpositie in de invoertekenreeks die de meest linkse positie definieert die moet worden doorzocht.

length
Int32

Het aantal tekens in de subtekenreeks dat moet worden opgenomen in de zoekopdracht.

Retouren

Een object dat informatie over de overeenkomst bevat.

Uitzonderingen

input is null.

beginning is kleiner dan nul of groter dan de lengte van input. -of- length is kleiner dan nul of groter dan de lengte van input. -of- beginning + length - 1 identificeert een positie buiten het bereik van input.

Er is een time-out opgetreden.

Opmerkingen

De Match(String, Int32, Int32) methode doorzoekt het gedeelte van input gedefinieerd door de beginning en length parameters voor het reguliere expressiepatroon. beginning definieert altijd de index van het meest linkse teken dat moet worden opgenomen in de zoekopdracht en length definieert het maximum aantal tekens dat moet worden gezocht. Samen definiëren ze het bereik van de zoekopdracht. Het gedrag is precies alsof de invoer effectief input.Substring(beginning, length)was, behalve dat de index van een overeenkomst wordt geteld ten opzichte van het begin van input. Dit betekent dat ankers of asserties met nul breedte aan het begin of einde van het patroon zich gedragen alsof er geen invoer buiten dit bereik is.

Als de zoekopdracht van links naar rechts wordt uitgevoerd (de standaardinstelling), zoekt de reguliere expressie-engine van het teken in de index beginning naar het teken bij index beginning + length - 1. Als de engine voor reguliere expressies is geïnstantieerd met behulp van de RightToLeft optie, zoekt de engine van het teken bij indexlengthbeginning + - 1 naar het teken bij de index.beginning

Deze methode retourneert de eerste overeenkomst die in dit bereik is gevonden. U kunt volgende overeenkomsten ophalen door de Match-methode van het geretourneerde object NextMatch() herhaaldelijk aan te roepen.

Zie ook

Van toepassing op

Match(String, String, RegexOptions)

Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs

Zoekt in de invoertekenreeks naar het eerste exemplaar van de opgegeven reguliere expressie, met behulp van de opgegeven overeenkomende opties.

public:
 static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static System.Text.RegularExpressions.Match Match(string input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member Match : string * string * System.Text.RegularExpressions.RegexOptions -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String, options As RegexOptions) As Match

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

Een object dat informatie over de overeenkomst bevat.

Uitzonderingen

Er is een reguliere expressieparseringsfout opgetreden.

input of pattern is null.

options is geen geldige bitsgewijze combinatie van RegexOptions waarden.

Er is een time-out opgetreden.

Opmerkingen

De statische Match(String, String, RegexOptions) methode is gelijk aan het maken van een Regex object met de Regex(String, RegexOptions) constructor en het aanroepen van de instantiemethode Match(String) .

U kunt bepalen of het reguliere expressiepatroon is gevonden in de invoertekenreeks door de eigenschap van Success het geretourneerde Match object te controleren. U kunt volgende overeenkomsten ophalen door de Match-methode van het geretourneerde object NextMatch() herhaaldelijk aan te roepen. U kunt ook alle overeenkomsten in één methode-aanroep ophalen door de Matches(String, String, RegexOptions)-methode aan te roepen.

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 ophalen van een patroonovereenkomst is Match(String, String), waarmee u het time-outinterval kunt instellen.

Zie ook

Van toepassing op

Match(String, String, RegexOptions, TimeSpan)

Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs
Bron:
Regex.Match.cs

Zoekt in de invoertekenreeks naar het eerste exemplaar van de opgegeven reguliere expressie, met behulp van de opgegeven overeenkomende opties en time-outinterval.

public:
 static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static System.Text.RegularExpressions.Match Match(string input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member Match : string * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As Match

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

Een object dat informatie over de overeenkomst bevat.

Uitzonderingen

Er is een reguliere expressieparseringsfout opgetreden.

input of pattern is null.

options is geen geldige bitsgewijze combinatie van RegexOptions waarden. -of- matchTimeout is negatief, nul of groter dan ongeveer 24 dagen.

Er is een time-out opgetreden.

Opmerkingen

De statische Match(String, String, RegexOptions, TimeSpan) methode is gelijk aan het maken van een Regex object met de Regex(String, RegexOptions, TimeSpan) constructor en het aanroepen van de instantiemethode Match(String) .

U kunt bepalen of het reguliere expressiepatroon is gevonden in de invoertekenreeks door de eigenschap van Success het geretourneerde Match object te controleren. U kunt volgende overeenkomsten ophalen door de Match-methode van het geretourneerde object NextMatch() herhaaldelijk aan te roepen.

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. 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