Regex.Matches Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Cerca in una stringa di input tutte le occorrenze di un'espressione regolare e restituisce tutte le corrispondenze.
Overload
Matches(String, String, RegexOptions, TimeSpan) |
Cerca nella stringa di input specificata tutte le occorrenze di un'espressione regolare specificata usando le opzioni di corrispondenza e l'intervallo di timeout specificati. |
Matches(String, String, RegexOptions) |
Cerca nella stringa di input specificata tutte le occorrenze di un'espressione regolare specificata usando le opzioni di corrispondenza specificate. |
Matches(String, Int32) |
Cerca nella stringa di input specificata tutte le occorrenze di un'espressione regolare, partendo dalla posizione iniziale specificata nella stringa. |
Matches(String) |
Cerca nella stringa di input specificata tutte le occorrenze di un'espressione regolare. |
Matches(String, String) |
Cerca nella stringa di input specificata tutte le occorrenze di un'espressione regolare specificata. |
Matches(String, String, RegexOptions, TimeSpan)
- Origine:
- Regex.Match.cs
- Origine:
- Regex.Match.cs
- Origine:
- Regex.Match.cs
Cerca nella stringa di input specificata tutte le occorrenze di un'espressione regolare specificata usando le opzioni di corrispondenza e l'intervallo di timeout specificati.
public:
static System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static System.Text.RegularExpressions.MatchCollection Matches (string input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member Matches : string * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> System.Text.RegularExpressions.MatchCollection
Public Shared Function Matches (input As String, pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As MatchCollection
Parametri
- input
- String
Stringa nella quale cercare una corrispondenza.
- pattern
- String
Criterio di espressione regolare di cui trovare la corrispondenza.
- options
- RegexOptions
Combinazione bit per bit dei valori di enumerazione che specificano le opzioni per la corrispondenza.
- matchTimeout
- TimeSpan
Intervallo di timeout o InfiniteMatchTimeout per indicare che per il metodo non è previsto un timeout.
Restituisce
Raccolta di oggetti Match trovati dalla ricerca. Se non vengono trovate corrispondenze, il metodo restituisce un oggetto raccolta vuoto.
Eccezioni
Si è verificato un errore di analisi dell'espressione regolare.
input
o pattern
è null
.
options
non è una combinazione bit per bit valida di valori di RegexOptions.
-oppure-
matchTimeout
è negativo, zero o maggiore di circa 24 giorni.
Esempio
Nell'esempio seguente viene chiamato il Matches(String, String, RegexOptions, TimeSpan) metodo per eseguire un confronto con distinzione tra maiuscole e minuscole che corrisponde a qualsiasi parola in una frase che termina in "es". Chiama quindi il Matches(String, String, RegexOptions, TimeSpan) metodo per eseguire un confronto senza distinzione tra maiuscole e minuscole del modello con la stringa di input. In entrambi i casi, l'intervallo di timeout viene impostato su un secondo. Come illustrato dall'output, i due metodi restituiscono risultati diversi.
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\b\w+es\b";
string sentence = "NOTES: Any notes or comments are optional.";
// Call Matches method without specifying any options.
try {
foreach (Match match in Regex.Matches(sentence, pattern,
RegexOptions.None,
TimeSpan.FromSeconds(1)))
Console.WriteLine("Found '{0}' at position {1}",
match.Value, match.Index);
}
catch (RegexMatchTimeoutException) {
// Do Nothing: Assume that timeout represents no match.
}
Console.WriteLine();
// Call Matches method for case-insensitive matching.
try {
foreach (Match match in Regex.Matches(sentence, pattern, RegexOptions.IgnoreCase))
Console.WriteLine("Found '{0}' at position {1}",
match.Value, match.Index);
}
catch (RegexMatchTimeoutException) {}
}
}
// The example displays the following output:
// Found 'notes' at position 11
//
// Found 'NOTES' at position 0
// Found 'notes' at position 11
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "\b\w+es\b"
Dim sentence As String = "NOTES: Any notes or comments are optional."
' Call Matches method without specifying any options.
For Each match As Match In Regex.Matches(sentence, pattern,
RegexOptions.None,
TimeSpan.FromSeconds(1))
Try
Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
Catch e As RegexMatchTimeoutException
' Do Nothing: Assume that timeout represents no match.
End Try
Next
Console.WriteLine()
' Call Matches method for case-insensitive matching.
Try
For Each match As Match In Regex.Matches(sentence, pattern,
RegexOptions.IgnoreCase,
TimeSpan.FromSeconds(1))
Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
Next
Catch de As RegexMatchTimeoutException
' Do Nothing: Assume that timeout represents no match.
End Try
End Sub
End Module
' The example displays the following output:
' Found 'notes' at position 11
'
' Found 'NOTES' at position 0
' Found 'notes' at position 11
Il criterio di ricerca di espressioni regolari \b\w+es\b
è definito nel modo illustrato nella tabella seguente.
Modello | Descrizione |
---|---|
\b |
Inizia la corrispondenza sul confine di parola. |
\w+ |
Trova la corrispondenza di uno o più caratteri alfanumerici. |
es |
Corrisponde alla stringa letterale "es". |
\b |
Termina la corrispondenza sul confine di parola. |
Commenti
Il Matches(String, String, RegexOptions, TimeSpan) metodo è simile al Match(String, String, RegexOptions, TimeSpan) metodo, ad eccezione del fatto che restituisce informazioni su tutte le corrispondenze trovate nella stringa di input, anziché una singola corrispondenza. Equivale al codice seguente:
try {
Match match = Regex.Match(input, pattern, options,
TimeSpan.FromSeconds(1));
while (match.Success) {
// Handle match here...
match = match.NextMatch();
}
}
catch (RegexMatchTimeoutException) {
// Do nothing: assume that exception represents no match.
}
Try
Dim match As Match = Regex.Match(input, pattern, options,
TimeSpan.FromSeconds(1))
Do While match.Success
' Handle match here...
match = match.NextMatch()
Loop
Catch e As RegexMatchTimeoutException
' Do nothing: assume that exception represents no match.
End Try
I metodi statici Matches
sono equivalenti alla costruzione di un Regex oggetto con il modello di espressione regolare specificato e la chiamata al metodo Matches
di istanza .
Il pattern
parametro è costituito da elementi del linguaggio delle espressioni regolari che descrivono simbolicamente la stringa da corrispondere. Per altre informazioni sulle espressioni regolari, vedere Espressioni regolari .NET e Linguaggio di espressione regolare - Riferimento rapido.
Il Matches metodo usa la valutazione lazy per popolare l'oggetto restituito MatchCollection . L'accesso ai membri di questa raccolta, ad esempio MatchCollection.Count e MatchCollection.CopyTo causa la popolamento immediato della raccolta. Per sfruttare la valutazione lazy, è consigliabile eseguire l'iterazione della raccolta usando un costrutto come foreach
in C# e For Each
...Next
in Visual Basic.
A causa della valutazione lazy, la chiamata al Matches metodo non genera un'eccezione RegexMatchTimeoutException . Tuttavia, viene generata un'eccezione quando viene eseguita un'operazione sull'oggetto MatchCollection restituito da questo metodo, se un'operazione corrispondente supera questo intervallo di timeout specificato dalmatchTimeout
parametro.
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 di espressioni regolari offre prestazioni leggermente migliori. Tuttavia, è consigliabile disabilitare i timeout solo in base alle condizioni seguenti:
Quando l'input elaborato da un'espressione regolare deriva da un'origine nota e attendibile o è costituita da testo statico. Ciò esclude il testo che è stato immesso dinamicamente dagli utenti.
Quando il modello di espressione regolare è stato testato accuratamente per garantire che gestisca in modo efficiente corrispondenze, non corrispondenze e corrispondenze vicine.
Quando il modello 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
Matches(String, String, RegexOptions)
- Origine:
- Regex.Match.cs
- Origine:
- Regex.Match.cs
- Origine:
- Regex.Match.cs
Cerca nella stringa di input specificata tutte le occorrenze di un'espressione regolare specificata usando le opzioni di corrispondenza specificate.
public:
static System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static System.Text.RegularExpressions.MatchCollection Matches (string input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member Matches : string * string * System.Text.RegularExpressions.RegexOptions -> System.Text.RegularExpressions.MatchCollection
Public Shared Function Matches (input As String, pattern As String, options As RegexOptions) As MatchCollection
Parametri
- input
- String
Stringa nella quale cercare una corrispondenza.
- pattern
- String
Criterio di espressione regolare di cui trovare la corrispondenza.
- options
- RegexOptions
Combinazione bit per bit dei valori di enumerazione che specificano le opzioni per la corrispondenza.
Restituisce
Raccolta di oggetti Match trovati dalla ricerca. Se non vengono trovate corrispondenze, il metodo restituisce un oggetto raccolta vuoto.
Eccezioni
Si è verificato un errore di analisi dell'espressione regolare.
input
o pattern
è null
.
options
non è una combinazione bit per bit valida di valori di RegexOptions.
Esempio
Nell'esempio seguente viene chiamato il metodo per identificare qualsiasi parola in una frase che termina in "es" e quindi chiama il Matches(String, String)Matches(String, String, RegexOptions) metodo per eseguire un confronto senza distinzione tra maiuscole e minuscole del modello con la stringa di input. Come illustrato dall'output, i due metodi restituiscono risultati diversi.
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\b\w+es\b";
string sentence = "NOTES: Any notes or comments are optional.";
// Call Matches method without specifying any options.
foreach (Match match in Regex.Matches(sentence, pattern))
Console.WriteLine("Found '{0}' at position {1}",
match.Value, match.Index);
Console.WriteLine();
// Call Matches method for case-insensitive matching.
foreach (Match match in Regex.Matches(sentence, pattern, RegexOptions.IgnoreCase))
Console.WriteLine("Found '{0}' at position {1}",
match.Value, match.Index);
}
}
// The example displays the following output:
// Found 'notes' at position 11
//
// Found 'NOTES' at position 0
// Found 'notes' at position 11
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "\b\w+es\b"
Dim sentence As String = "NOTES: Any notes or comments are optional."
' Call Matches method without specifying any options.
For Each match As Match In Regex.Matches(sentence, pattern)
Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
Next
Console.WriteLine()
' Call Matches method for case-insensitive matching.
For Each match As Match In Regex.Matches(sentence, pattern, RegexOptions.IgnoreCase)
Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
Next
End Sub
End Module
' The example displays the following output:
' Found 'notes' at position 11
'
' Found 'NOTES' at position 0
' Found 'notes' at position 11
Il criterio di ricerca di espressioni regolari \b\w+es\b
è definito nel modo illustrato nella tabella seguente.
Modello | Descrizione |
---|---|
\b |
Inizia la corrispondenza sul confine di parola. |
\w+ |
Trova la corrispondenza di uno o più caratteri alfanumerici. |
es |
Corrisponde alla stringa letterale "es". |
\b |
Termina la corrispondenza sul confine di parola. |
Commenti
Il Matches(String, String, RegexOptions) metodo è simile al Match(String, String, RegexOptions) metodo, ad eccezione del fatto che restituisce informazioni su tutte le corrispondenze trovate nella stringa di input, anziché una singola corrispondenza. Equivale al codice seguente:
Match match = Regex.Match(input, pattern, options);
while (match.Success) {
// Handle match here...
match = match.NextMatch();
}
Dim match As Match = Regex.Match(input, pattern, options)
Do While match.Success
' Handle match here...
match = match.NextMatch()
Loop
I metodi statici Matches
sono equivalenti alla costruzione di un Regex oggetto con il modello di espressione regolare specificato e la chiamata al metodo Matches
di istanza .
Il pattern
parametro è costituito da elementi del linguaggio delle espressioni regolari che descrivono simbolicamente la stringa da corrispondere. Per altre informazioni sulle espressioni regolari, vedere Espressioni regolari .NET e Linguaggio di espressione regolare - Riferimento rapido.
Il Matches metodo usa la valutazione lazy per popolare l'oggetto restituito MatchCollection . L'accesso ai membri di questa raccolta, ad esempio MatchCollection.Count e MatchCollection.CopyTo causa la popolamento immediato della raccolta. Per sfruttare la valutazione lazy, è consigliabile eseguire l'iterazione della raccolta usando un costrutto come foreach
in C# e For Each
...Next
in Visual Basic.
A causa della valutazione lazy, la chiamata al Matches(String, String) metodo non genera un'eccezione RegexMatchTimeoutException . Tuttavia, l'eccezione viene generata quando un'operazione viene eseguita sull'oggetto MatchCollection restituito da questo metodo, se un intervallo di timeout viene definito dalla proprietà "REGEX_DEFAULT_MATCH_TIMEOUT" del dominio applicazione corrente e un'operazione corrispondente supera questo intervallo di timeout.
Note per i chiamanti
Questo metodo viene eseguito il timeout dopo un intervallo uguale al valore di timeout predefinito del dominio dell'applicazione in cui viene chiamato. Se un valore di timeout non è stato definito per il dominio dell'applicazione, viene usato il valore InfiniteMatchTimeout, che impedisce il timeout del metodo. Il metodo statico consigliato per il recupero di più corrispondenze di criterio è Matches(String, String, RegexOptions, TimeSpan), che consente di impostare l'intervallo di timeout.
Vedi anche
Si applica a
Matches(String, Int32)
- Origine:
- Regex.Match.cs
- Origine:
- Regex.Match.cs
- Origine:
- Regex.Match.cs
Cerca nella stringa di input specificata tutte le occorrenze di un'espressione regolare, partendo dalla posizione iniziale specificata nella stringa.
public:
System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, int startat);
public System.Text.RegularExpressions.MatchCollection Matches (string input, int startat);
member this.Matches : string * int -> System.Text.RegularExpressions.MatchCollection
Public Function Matches (input As String, startat As Integer) As MatchCollection
Parametri
- input
- String
Stringa nella quale cercare una corrispondenza.
- startat
- Int32
Posizione del carattere nella stringa di input dalla quale iniziare la ricerca.
Restituisce
Raccolta di oggetti Match trovati dalla ricerca. Se non vengono trovate corrispondenze, il metodo restituisce un oggetto raccolta vuoto.
Eccezioni
input
è null
.
startat
è minore di zero o maggiore della lunghezza di input
.
Esempio
Nell'esempio seguente viene usato il metodo per trovare la prima parola in una frase che termina in "es" e quindi chiama il Match(String)Matches(String, Int32) metodo per identificare eventuali parole aggiuntive che terminano in "es".
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\b\w+es\b";
Regex rgx = new Regex(pattern);
string sentence = "Who writes these notes and uses our paper?";
// Get the first match.
Match match = rgx.Match(sentence);
if (match.Success) {
Console.WriteLine("Found first 'es' in '{0}' at position {1}",
match.Value, match.Index);
// Get any additional matches.
foreach (Match m in rgx.Matches(sentence, match.Index + match.Length))
Console.WriteLine("Also found '{0}' at position {1}",
m.Value, m.Index);
}
}
}
// The example displays the following output:
// Found first 'es' in 'writes' at position 4
// Also found 'notes' at position 17
// Also found 'uses' at position 27
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "\b\w+es\b"
Dim rgx As New Regex(pattern)
Dim sentence As String = "Who writes these notes and uses our paper?"
' Get the first match.
Dim match As Match = rgx.Match(sentence)
If match.Success Then
Console.WriteLine("Found first 'es' in '{0}' at position {1}", _
match.Value, match.Index)
' Get any additional matches.
For Each match In rgx.Matches(sentence, match.Index + match.Length)
Console.WriteLine("Also found '{0}' at position {1}", _
match.Value, match.Index)
Next
End If
End Sub
End Module
' The example displays the following output:
' Found first 'es' in 'writes' at position 4
' Also found 'notes' at position 17
' Also found 'uses' at position 27
Il criterio di ricerca di espressioni regolari \b\w+es\b
è definito nel modo illustrato nella tabella seguente.
Modello | Descrizione |
---|---|
\b |
Inizia la corrispondenza sul confine di parola. |
\w+ |
Trova la corrispondenza di uno o più caratteri alfanumerici. |
es |
Corrisponde alla stringa letterale "es". |
\b |
Termina la corrispondenza sul confine di parola. |
Commenti
Il Matches(String, Int32) metodo è simile al Match(String, Int32) metodo, ad eccezione del fatto che restituisce informazioni su tutte le corrispondenze trovate nella stringa di input, anziché una singola corrispondenza. Equivale al codice seguente:
Match match = regex.Match(input, startAt);
while (match.Success) {
// Handle match here...
match = match.NextMatch();
}
Dim match As Match = regex.Match(input, startAt)
Do While match.Success
' Handle match here...
match = match.NextMatch()
Loop
Il criterio di espressione regolare per il quale il Matches(String, Int32) metodo esegue la ricerca viene definito dalla chiamata a uno dei costruttori della Regex classe. Per altre informazioni sugli elementi che possono formare un modello di espressione regolare, vedere Regular Expression Language - Quick Reference.
Per altre informazioni su startat
, vedere la sezione Osservazioni di Match(String, Int32).
Il Matches metodo usa la valutazione differita per popolare l'oggetto restituito MatchCollection . L'accesso ai membri di questa raccolta, MatchCollection.Count ad esempio e MatchCollection.CopyTo fa sì che la raccolta venga popolata immediatamente. Per sfruttare i vantaggi della valutazione differita, è necessario scorrere la raccolta usando un costrutto come foreach
in C# e For Each
...Next
in Visual Basic.
A causa della valutazione differita, la chiamata al Matches(String, Int32) metodo non genera un'eccezione RegexMatchTimeoutException . Tuttavia, l'eccezione viene generata quando viene eseguita un'operazione sull'oggetto MatchCollection restituito da questo metodo, se la MatchTimeout proprietà non Regex.InfiniteMatchTimeout è e un'operazione corrispondente supera l'intervallo di timeout.
Vedi anche
Si applica a
Matches(String)
- Origine:
- Regex.Match.cs
- Origine:
- Regex.Match.cs
- Origine:
- Regex.Match.cs
Cerca nella stringa di input specificata tutte le occorrenze di un'espressione regolare.
public:
System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input);
public System.Text.RegularExpressions.MatchCollection Matches (string input);
member this.Matches : string -> System.Text.RegularExpressions.MatchCollection
Public Function Matches (input As String) As MatchCollection
Parametri
- input
- String
Stringa nella quale cercare una corrispondenza.
Restituisce
Raccolta di oggetti Match trovati dalla ricerca. Se non vengono trovate corrispondenze, il metodo restituisce un oggetto raccolta vuoto.
Eccezioni
input
è null
.
Esempio
Nell'esempio seguente viene usato il Matches(String) metodo per identificare le parole in una frase che terminano in "es".
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\b\w+es\b";
Regex rgx = new Regex(pattern);
string sentence = "Who writes these notes?";
foreach (Match match in rgx.Matches(sentence))
Console.WriteLine("Found '{0}' at position {1}",
match.Value, match.Index);
}
}
// The example displays the following output:
// Found 'writes' at position 4
// Found 'notes' at position 17
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "\b\w+es\b"
Dim rgx As New Regex(pattern)
Dim sentence As String = "Who writes these notes?"
For Each match As Match In rgx.Matches(sentence)
Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
Next
End Sub
End Module
' The example displays the following output:
' Found 'writes' at position 4
' Found 'notes' at position 17
Il criterio di ricerca di espressioni regolari \b\w+es\b
è definito nel modo illustrato nella tabella seguente.
Modello | Descrizione |
---|---|
\b |
Inizia la corrispondenza sul confine di parola. |
\w+ |
Trova la corrispondenza di uno o più caratteri alfanumerici. |
es |
Trova la corrispondenza con la stringa letterale "es". |
\b |
Termina la corrispondenza sul confine di parola. |
Commenti
Il Matches(String) metodo è simile al Match(String) metodo , ad eccezione del fatto che restituisce informazioni su tutte le corrispondenze trovate nella stringa di input, anziché una singola corrispondenza. Equivale al codice seguente:
Match match = regex.Match(input);
while (match.Success) {
// Handle match here...
match = match.NextMatch();
}
Dim match As Match = regex.Match(input)
Do While match.Success
' Handle match here...
match = match.NextMatch()
Loop
La raccolta include solo corrispondenze e termina alla prima non corrispondenza.
Il criterio di espressione regolare per il quale il Matches(String) metodo esegue la ricerca viene definito dalla chiamata a uno dei costruttori della Regex classe. Per altre informazioni sugli elementi che possono formare un modello di espressione regolare, vedere Regular Expression Language - Quick Reference.
Il Matches metodo usa la valutazione differita per popolare l'oggetto restituito MatchCollection . L'accesso ai membri di questa raccolta, MatchCollection.Count ad esempio e MatchCollection.CopyTo fa sì che la raccolta venga popolata immediatamente. Per sfruttare i vantaggi della valutazione differita, è necessario scorrere la raccolta usando un costrutto come foreach
in C# e For Each
...Next
in Visual Basic.
A causa della valutazione differita, la chiamata al Matches(String) metodo non genera un'eccezione RegexMatchTimeoutException . Tuttavia, l'eccezione viene generata quando viene eseguita un'operazione sull'oggetto MatchCollection restituito da questo metodo, se la MatchTimeout proprietà non Regex.InfiniteMatchTimeout è e un'operazione corrispondente supera l'intervallo di timeout.
Vedi anche
Si applica a
Matches(String, String)
- Origine:
- Regex.Match.cs
- Origine:
- Regex.Match.cs
- Origine:
- Regex.Match.cs
Cerca nella stringa di input specificata tutte le occorrenze di un'espressione regolare specificata.
public:
static System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, System::String ^ pattern);
public static System.Text.RegularExpressions.MatchCollection Matches (string input, string pattern);
static member Matches : string * string -> System.Text.RegularExpressions.MatchCollection
Public Shared Function Matches (input As String, pattern As String) As MatchCollection
Parametri
- input
- String
Stringa nella quale cercare una corrispondenza.
- pattern
- String
Criterio di espressione regolare di cui trovare la corrispondenza.
Restituisce
Raccolta di oggetti Match trovati dalla ricerca. Se non vengono trovate corrispondenze, il metodo restituisce un oggetto raccolta vuoto.
Eccezioni
Si è verificato un errore di analisi dell'espressione regolare.
input
o pattern
è null
.
Esempio
Nell'esempio seguente viene utilizzato il Matches(String, String) metodo per identificare qualsiasi parola in una frase che termina con "es".
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\b\w+es\b";
string sentence = "Who writes these notes?";
foreach (Match match in Regex.Matches(sentence, pattern))
Console.WriteLine("Found '{0}' at position {1}",
match.Value, match.Index);
}
}
// The example displays the following output:
// Found 'writes' at position 4
// Found 'notes' at position 17
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "\b\w+es\b"
Dim sentence As String = "Who writes these notes?"
For Each match As Match In Regex.Matches(sentence, pattern)
Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
Next
End Sub
End Module
' The example displays the following output:
' Found 'writes' at position 4
' Found 'notes' at position 17
Il criterio di ricerca di espressioni regolari \b\w+es\b
è definito nel modo illustrato nella tabella seguente.
Modello | Descrizione |
---|---|
\b |
Inizia la corrispondenza sul confine di parola. |
\w+ |
Trova la corrispondenza di uno o più caratteri alfanumerici. |
es |
Trova la corrispondenza con la stringa letterale "es". |
\b |
Termina la corrispondenza sul confine di parola. |
Commenti
Il Matches(String, String) metodo è simile al Match(String, String) metodo , ad eccezione del fatto che restituisce informazioni su tutte le corrispondenze trovate nella stringa di input, anziché una singola corrispondenza. Equivale al codice seguente:
Match match = Regex.Match(input, pattern);
while (match.Success) {
// Handle match here...
match = match.NextMatch();
}
Dim match As Match = Regex.Match(input, pattern)
Do While match.Success
' Handle match here...
match = match.NextMatch()
Loop
I metodi statici Matches
sono equivalenti alla costruzione di un Regex oggetto con il modello di espressione regolare specificato e la chiamata al metodo Matches
di istanza .
Il pattern
parametro è costituito da elementi del linguaggio delle espressioni regolari che descrivono simbolicamente la stringa da trovare. Per altre informazioni sulle espressioni regolari, vedere Espressioni regolari .NET e Linguaggio di espressioni regolari - Riferimento rapido.
Il Matches metodo usa la valutazione differita per popolare l'oggetto restituito MatchCollection . L'accesso ai membri di questa raccolta, MatchCollection.Count ad esempio e MatchCollection.CopyTo fa sì che la raccolta venga popolata immediatamente. Per sfruttare i vantaggi della valutazione differita, è necessario scorrere la raccolta usando un costrutto come foreach
in C# e For Each
...Next
in Visual Basic.
A causa della valutazione differita, la chiamata al Matches(String, String) metodo non genera un'eccezione RegexMatchTimeoutException . Tuttavia, l'eccezione viene generata quando viene eseguita un'operazione sull'oggetto MatchCollection restituito da questo metodo, se un intervallo di timeout viene definito dalla proprietà "REGEX_DEFAULT_MATCH_TIMEOUT" del dominio applicazione corrente e un'operazione corrispondente supera questo intervallo di timeout.
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 non è stato definito un valore di timeout per il dominio applicazione, viene utilizzato il valore InfiniteMatchTimeout, che impedisce il timeout del metodo. Il metodo statico consigliato per il recupero di più corrispondenze di criteri è Matches(String, String, RegexOptions, TimeSpan), che consente di specificare l'intervallo di timeout.