Regex.Match Metodo

Definizione

Cerca in una stringa di input una sottostringa che corrisponde a un criterio di espressione regolare e restituisce la prima occorrenza come singolo Match oggetto.

Overload

Nome Descrizione
Match(String)

Cerca nella stringa di input specificata la prima occorrenza dell'espressione regolare specificata nel Regex costruttore.

Match(String, Int32)

Cerca nella stringa di input la prima occorrenza di un'espressione regolare, a partire dalla posizione iniziale specificata nella stringa.

Match(String, String)

Cerca nella stringa di input specificata la prima occorrenza dell'espressione regolare specificata.

Match(String, Int32, Int32)

Cerca nella stringa di input la prima occorrenza di un'espressione regolare, a partire dalla posizione iniziale specificata e cercando solo il numero specificato di caratteri.

Match(String, String, RegexOptions)

Cerca nella stringa di input la prima occorrenza dell'espressione regolare specificata, utilizzando le opzioni di corrispondenza specificate.

Match(String, String, RegexOptions, TimeSpan)

Cerca nella stringa di input la prima occorrenza dell'espressione regolare specificata, usando le opzioni di corrispondenza specificate e l'intervallo di timeout.

Match(String)

Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs

Cerca nella stringa di input specificata la prima occorrenza dell'espressione regolare specificata nel Regex costruttore.

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

Parametri

input
String

Stringa in cui cercare una corrispondenza.

Valori restituiti

Oggetto che contiene informazioni sulla corrispondenza.

Eccezioni

input è null.

Si è verificato un timeout.

Commenti

Il Match(String) metodo restituisce la prima sottostringa che corrisponde a un criterio di espressione regolare in una stringa di input.

È possibile determinare se il criterio di espressione regolare è stato trovato nella stringa di input controllando la proprietà dell'oggetto Match restituitoSuccess. Se viene trovata una corrispondenza, la proprietà dell'oggetto Match restituito Value contiene la sottostringa corrispondente. Se non viene trovata alcuna corrispondenza, il relativo valore è Empty.

Questo metodo restituisce la prima corrispondenza. Puoi ottenere le corrispondenze successive ripetutamente chiamando il metodo Match dell'oggetto restituito NextMatch(). È anche possibile recuperare tutte le corrispondenze in una singola chiamata al metodo chiamando Matches(String).

L'eccezione RegexMatchTimeoutException viene generata se il tempo di esecuzione dell'operazione corrispondente supera l'intervallo di timeout specificato dal costruttore Regex(String, RegexOptions, TimeSpan). Se non si imposta un intervallo di timeout quando si chiama il costruttore, l'eccezione viene generata se l'operazione supera qualsiasi valore di timeout stabilito per il dominio applicazione in cui viene creato l'oggetto Regex. Se non viene definito alcun timeout nella chiamata al costruttore Regex o nelle proprietà del dominio applicazione oppure se il valore di timeout è InfiniteMatchTimeout, non viene generata alcuna eccezione.

Vedi anche

Si applica a

Match(String, Int32)

Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs

Cerca nella stringa di input la prima occorrenza di un'espressione regolare, a partire dalla posizione iniziale specificata nella stringa.

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

Parametri

input
String

Stringa in cui cercare una corrispondenza.

startat
Int32

Posizione del carattere in base zero in corrispondenza della quale avviare la ricerca.

Valori restituiti

Oggetto che contiene informazioni sulla corrispondenza.

Eccezioni

input è null.

startat è minore di zero o maggiore della lunghezza di input.

Si è verificato un timeout.

Commenti

Il metodo Match(String, Int32) restituisce la prima sottostringa corrispondente a un criterio di espressione regolare, a partire o dopo la posizione del carattere startat, in una stringa di input. Il modello di espressione regolare per cui il metodo Match(String, Int32) cerca è definito dalla chiamata a uno dei costruttori della classe Regex. Per informazioni sugli elementi del linguaggio usati per creare un criterio di espressione regolare, vedere Linguaggio di espressioni regolari - Riferimento rapido.

Parametro startat

Usare il startat parametro per specificare la posizione del carattere in corrispondenza della quale viene avviata la ricerca. In una ricerca da sinistra a destra, tutte le corrispondenze che iniziano prima startat nella stringa vengono ignorate. Per iniziare dalla posizione predefinita, usare l'overload Match(String) (o passare 0 per una ricerca da sinistra a destra e input.Length per una ricerca da destra a sinistra). Nonostante l'avvio della ricerca in startat, l'indice di qualsiasi corrispondenza restituita è relativo all'inizio della stringa.

Sebbene il motore delle espressioni regolari non restituisca alcuna corrispondenza che inizia prima di startat, non ignora comunque la stringa che precede startat. Ciò significa che asserzioni come ancoraggi o asserzioni lookbehind si applicano ancora all'input nel suo complesso. Ad esempio, il codice seguente include un criterio con un'asserzione lookbehind soddisfatta anche se si verifica prima dell'indice startat di 5 nella stringa di input.

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

  • Se un criterio inizia con l'ancoraggio ^ , startat è maggiore di 0 e l'espressione regolare non usa RegexOptions.Multiline, non verranno mai trovate corrispondenze perché sono vincolate dall'inizio ^ all'indice 0.
  • L'ancoraggio \G. Per questo motivo, se si desidera limitare una corrispondenza in modo che inizi esattamente in corrispondenza di una determinata posizione di carattere nella stringa, ancorare l'espressione regolare con un \G a sinistra per un criterio da sinistra a destra. Ciò limita la corrispondenza in modo che inizi esattamente a startat (o, quando si desiderano più corrispondenze, in modo che le corrispondenze siano consecutive).

Ricerche da destra a sinistra

Una ricerca da destra a sinistra, ovvero quando il criterio di espressione regolare viene costruito con l'opzione RegexOptions.RightToLeft, si comporta nei modi seguenti:

  • L'analisi si sposta nella direzione opposta e il modello viene confrontato da indietro (a destra) verso il lato anteriore (sinistro).
  • La posizione iniziale predefinita è la fine destra della stringa di input.
  • Se si specifica startat, l'analisi da destra a sinistra inizia con il carattere startat - 1 (non startat).
  • Quando l'ancoraggio \G viene specificato all'estremità destra di un modello, limita la prima corrispondenza affinché termini esattamente a startat - 1.

Per altre informazioni sulle ricerche da destra a sinistra, vedere modalità da destra a sinistra.

Determinare se viene trovata una corrispondenza

È possibile determinare se il pattern di espressione regolare è stato trovato nella stringa di input controllando il valore della proprietà Match dell'oggetto Success restituito. Se viene trovata una corrispondenza, la proprietà Match dell'oggetto Value restituita contiene la sottostringa di input che corrisponde al criterio di espressione regolare. Se non viene trovata alcuna corrispondenza, il relativo valore è String.Empty.

Prima o più corrispondenze

Questo metodo restituisce la prima sottostringa trovata analizzando input a partire dalla startat posizione (o, per le ricerche da destra a sinistra, in startat - 1) che corrisponde al criterio di espressione regolare. Puoi ottenere le corrispondenze successive ripetutamente chiamando il metodo Match dell'oggetto restituito Match.NextMatch. È anche possibile recuperare tutte le corrispondenze in una singola chiamata al metodo chiamando il metodo Regex.Matches(String, Int32).

Eccezioni di timeout

L'eccezione RegexMatchTimeoutException viene generata se il tempo di esecuzione dell'operazione corrispondente supera l'intervallo di timeout specificato dal costruttore Regex.Regex(String, RegexOptions, TimeSpan). Se non si imposta un intervallo di timeout quando si chiama il costruttore, l'eccezione viene generata se l'operazione supera qualsiasi valore di timeout stabilito per il dominio applicazione in cui viene creato l'oggetto Regex. Se non viene definito alcun timeout nella chiamata al costruttore Regex o nelle proprietà del dominio applicazione oppure se il valore di timeout è Regex.InfiniteMatchTimeout, non viene generata alcuna eccezione.

Vedi anche

Si applica a

Match(String, String)

Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs

Cerca nella stringa di input specificata la prima occorrenza dell'espressione regolare specificata.

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

Parametri

input
String

Stringa in cui cercare una corrispondenza.

pattern
String

Modello di espressione regolare da trovare in corrispondenza.

Valori restituiti

Oggetto che contiene informazioni sulla corrispondenza.

Eccezioni

Si è verificato un errore di analisi delle espressioni regolari.

input o pattern è null.

Si è verificato un timeout.

Commenti

Il metodo statico Match(String, String) equivale a costruire un Regex oggetto con il modello specificato e a chiamare il metodo di istanza Match(String) . Il motore delle espressioni regolari memorizza nella cache il modello.

È possibile determinare se il criterio di espressione regolare è stato trovato nella stringa di input controllando la proprietà dell'oggetto Match restituitoSuccess. Se viene trovata una corrispondenza, la proprietà dell'oggetto Match restituito Value contiene la sottostringa corrispondente. Se non viene trovata alcuna corrispondenza, il relativo valore è Empty.

Puoi ottenere le corrispondenze successive ripetutamente chiamando il metodo Match dell'oggetto restituito NextMatch(). È anche possibile recuperare tutte le corrispondenze in una singola chiamata al metodo chiamando il metodo Matches(String, String).

Note per i chiamanti

Questo metodo si verifica il timeout dopo un intervallo uguale al valore di timeout predefinito del dominio applicazione in cui viene chiamato. Se per il dominio applicazione non è stato definito un valore di timeout, viene usato il valore InfiniteMatchTimeout, che impedisce il timeout del metodo. Il metodo statico consigliato per il recupero di una corrispondenza dei criteri è Match(String, String), che consente di impostare l'intervallo di timeout.

Vedi anche

Si applica a

Match(String, Int32, Int32)

Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs

Cerca nella stringa di input la prima occorrenza di un'espressione regolare, a partire dalla posizione iniziale specificata e cercando solo il numero specificato di caratteri.

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

Parametri

input
String

Stringa in cui cercare una corrispondenza.

beginning
Int32

Posizione del carattere in base zero nella stringa di input che definisce la posizione più a sinistra in cui eseguire la ricerca.

length
Int32

Numero di caratteri nella sottostringa da includere nella ricerca.

Valori restituiti

Oggetto che contiene informazioni sulla corrispondenza.

Eccezioni

input è null.

beginning è minore di zero o maggiore della lunghezza di input. -oppure- length è minore di zero o maggiore della lunghezza di input. -oppure- - beginning + length 1 identifica una posizione esterna all'intervallo di .input

Si è verificato un timeout.

Commenti

Il Match(String, Int32, Int32) metodo cerca la parte di input definita dai parametri e beginning per il length criterio di espressione regolare. beginning definisce sempre l'indice del carattere più a sinistra da includere nella ricerca e length definisce il numero massimo di caratteri da cercare. Insieme definiscono l'intervallo della ricerca. Il comportamento è esattamente come se l'input fosse effettivamente input.Substring(beginning, length), ad eccezione del fatto che l'indice di qualsiasi corrispondenza viene conteggiato rispetto all'inizio di input. Ciò significa che qualsiasi ancoraggio o asserzione a larghezza zero all'inizio o alla fine del modello si comporta come se non vi sia alcun input all'esterno di questo intervallo.

Se la ricerca procede da sinistra a destra (impostazione predefinita), il motore delle espressioni regolari cerca dal carattere in corrispondenza dell'indice beginning al carattere in corrispondenza dell'indice beginning + length - 1. Se il motore delle espressioni regolari è stato creato un'istanza usando l'opzione RightToLeft , il motore cerca dal carattere in corrispondenza dell'indicebeginning + length- 1 al carattere in corrispondenza dell'indice .beginning

Questo metodo restituisce la prima corrispondenza trovata all'interno di questo intervallo. Puoi ottenere le corrispondenze successive ripetutamente chiamando il metodo Match dell'oggetto restituito NextMatch().

Vedi anche

Si applica a

Match(String, String, RegexOptions)

Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs

Cerca nella stringa di input la prima occorrenza dell'espressione regolare specificata, utilizzando le opzioni di corrispondenza specificate.

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

Parametri

input
String

Stringa in cui cercare una corrispondenza.

pattern
String

Modello di espressione regolare da trovare in corrispondenza.

options
RegexOptions

Combinazione bit per bit dei valori di enumerazione che forniscono opzioni per la corrispondenza.

Valori restituiti

Oggetto che contiene informazioni sulla corrispondenza.

Eccezioni

Si è verificato un errore di analisi delle espressioni regolari.

input o pattern è null.

options non è una combinazione bit per bit valida di RegexOptions valori.

Si è verificato un timeout.

Commenti

Il metodo statico Match(String, String, RegexOptions) equivale a costruire un Regex oggetto con il Regex(String, RegexOptions) costruttore e a chiamare il metodo di istanza Match(String) .

È possibile determinare se il criterio di espressione regolare è stato trovato nella stringa di input controllando la proprietà dell'oggetto Match restituitoSuccess. Puoi ottenere le corrispondenze successive ripetutamente chiamando il metodo Match dell'oggetto restituito NextMatch(). È anche possibile recuperare tutte le corrispondenze in una singola chiamata al metodo chiamando il metodo Matches(String, String, RegexOptions).

Note per i chiamanti

Questo metodo si verifica il timeout dopo un intervallo uguale al valore di timeout predefinito del dominio applicazione in cui viene chiamato. Se per il dominio applicazione non è stato definito un valore di timeout, viene usato il valore InfiniteMatchTimeout, che impedisce il timeout del metodo. Il metodo statico consigliato per il recupero di una corrispondenza dei criteri è Match(String, String), che consente di impostare l'intervallo di timeout.

Vedi anche

Si applica a

Match(String, String, RegexOptions, TimeSpan)

Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs
Origine:
Regex.Match.cs

Cerca nella stringa di input la prima occorrenza dell'espressione regolare specificata, usando le opzioni di corrispondenza specificate e l'intervallo di timeout.

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

Parametri

input
String

Stringa in cui cercare una corrispondenza.

pattern
String

Modello di espressione regolare da trovare in corrispondenza.

options
RegexOptions

Combinazione bit per bit dei valori di enumerazione che forniscono opzioni per la corrispondenza.

matchTimeout
TimeSpan

Intervallo di timeout o InfiniteMatchTimeout per indicare che il metodo non deve scadere.

Valori restituiti

Oggetto che contiene informazioni sulla corrispondenza.

Eccezioni

Si è verificato un errore di analisi delle espressioni regolari.

input o pattern è null.

options non è una combinazione bit per bit valida di RegexOptions valori. -oppure- matchTimeout è negativo, zero o maggiore di circa 24 giorni.

Si è verificato un timeout.

Commenti

Il metodo statico Match(String, String, RegexOptions, TimeSpan) equivale a costruire un Regex oggetto con il Regex(String, RegexOptions, TimeSpan) costruttore e a chiamare il metodo di istanza Match(String) .

È possibile determinare se il criterio di espressione regolare è stato trovato nella stringa di input controllando la proprietà dell'oggetto Match restituitoSuccess. Puoi ottenere le corrispondenze successive ripetutamente chiamando il metodo Match dell'oggetto restituito NextMatch().

Il matchTimeout parametro specifica per quanto tempo un metodo di ricerca dei criteri deve provare a trovare una corrispondenza prima del timeout. L'impostazione di un intervallo di timeout impedisce che le espressioni regolari che si basano su un backtracking eccessivo vengano visualizzate per interrompere la risposta quando elaborano l'input che contiene corrispondenze vicine. Se non viene trovata alcuna corrispondenza in tale intervallo di tempo, il metodo genera un'eccezione RegexMatchTimeoutException . matchTimeout esegue l'override di qualsiasi valore di timeout predefinito definito per il dominio applicazione in cui viene eseguito il metodo.

Note per i chiamanti

È consigliabile impostare il matchTimeout parametro su un valore appropriato, ad esempio due secondi. Se si disabilitano i timeout specificando InfiniteMatchTimeout, il motore delle espressioni regolari offre prestazioni leggermente migliori. Tuttavia, è consigliabile disabilitare i timeout solo nelle condizioni seguenti:

  • Quando l'input elaborato da un'espressione regolare è derivato da un'origine nota e attendibile o è costituito da testo statico. Questo esclude il testo che è stato immesso dinamicamente dagli utenti.

  • Quando il criterio di espressione regolare è stato testato accuratamente per garantire che gestisca in modo efficiente corrispondenze, non corrispondenze e corrispondenze vicine.

  • Quando il criterio di espressione regolare non contiene elementi del linguaggio noti per causare un backtracking eccessivo durante l'elaborazione di una corrispondenza vicina.

Vedi anche

Si applica a