Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Regex.Matches (String, String, RegexOptions)

 

Data di pubblicazione: ottobre 2016

Cerca nella stringa di input specificata tutte le occorrenze di un'espressione regolare specificata usando le opzioni di corrispondenza specificate.

Spazio dei nomi:   System.Text.RegularExpressions
Assembly:  System (in System.dll)

public static MatchCollection Matches(
	string input,
	string pattern,
	RegexOptions options
)

Parametri

input
Type: System.String

Stringa nella quale cercare una corrispondenza.

pattern
Type: System.String

Criterio di espressione regolare di cui trovare la corrispondenza.

options
Type: System.Text.RegularExpressions.RegexOptions

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

Valore restituito

Type: System.Text.RegularExpressions.MatchCollection

Raccolta di oggetti Match trovati dalla ricerca. Se non vengono trovate corrispondenze, il metodo restituisce un oggetto raccolta vuoto.

Exception Condition
ArgumentException

Si è verificato un errore di analisi dell'espressione regolare.

ArgumentNullException

input o pattern è null.

ArgumentOutOfRangeException

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

Il Matches(String, String, RegexOptions) metodo è simile al Match(String, String, RegexOptions) (metodo), ma restituisce informazioni su tutte le corrispondenze trovate nella stringa di input, anziché una singola corrispondenza. È equivalente al codice seguente:

Match match = Regex.Match(input, pattern, options);
while (match.Success) {
      // Handle match here...

      match = match.NextMatch();
}  

Il metodo statico Matches metodi sono equivalenti alla costruzione di un Regex dell'oggetto con il modello di espressione regolare specificata e la chiamata al metodo di istanza Matches.

Il pattern parametro consiste di elementi di linguaggio di espressioni regolari che descrivono la stringa da confrontare. Per ulteriori informazioni sulle espressioni regolari, vedere Espressioni regolari di .NET Framework e Linguaggio di espressioni regolari - Riferimento rapido.

Il Matches metodo utilizza la valutazione differita per popolare l'oggetto restituito MatchCollection oggetto. L'accesso ai membri di questa raccolta, ad esempio MatchCollection.Count e MatchCollection.CopyTo fa sì che la raccolta di essere popolata immediatamente. Per avvalersi della valutazione lenta, è necessario scorrere la raccolta utilizzando un costrutto quale foreach in c# e ForEach...Next in Visual Basic.

A causa della relativa valutazione lazy, la chiamata di Matches(String, String) metodo non genera un RegexMatchTimeoutException (eccezione). Tuttavia, l'eccezione viene generata quando viene eseguita un'operazione su di MatchCollection oggetto restituito da questo metodo, se un intervallo di timeout è 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 scade dopo un intervallo uguale al valore di timeout predefinito del dominio dell'applicazione in cui viene chiamato. Se non è stato definito un valore di timeout per il dominio applicazione, il valore Regex.InfiniteMatchTimeout, timeout, che impedisce il metodo viene utilizzato. Il metodo statico consigliato per il recupero di più serie corrisponde è Regex.Matches(String, String, RegexOptions, TimeSpan), che consente di impostare l'intervallo di timeout.

Nell'esempio seguente viene chiamato il Matches(String, String) metodo per identificare qualsiasi parola in una frase che termina in "es" e quindi chiama il Matches(String, String, RegexOptions) metodo per eseguire un confronto tra maiuscole e minuscole del modello con la stringa di input. Come illustrato nell'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

Il criterio di ricerca di espressioni regolari \b\w+es\b è definito nel modo illustrato nella tabella seguente.

Criterio

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.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: