Regex.Match Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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,startatgroter 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
\Ganker is tevreden overstartat. Omdat u hierdoor een overeenkomst wilt beperken zodat deze exact begint bij een bepaalde tekenpositie in de tekenreeks, veranker de reguliere expressie met een\Gaan de linkerkant voor een patroon van links naar rechts. Hierdoor wordt de match beperkt, zodat deze exact moet aanvangen bijstartat(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
startatis opgegeven, begint de scan van rechts naar links bij het teken opstartat- 1 (nietstartat). - Wanneer het
\Ganker aan de rechterkant van een patroon wordt opgegeven, wordt de (eerste) overeenkomst beperkt tot exact eindigen opstartat- 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.