Regex.IsMatch Metodo

Definizione

Indica se l'espressione regolare individua una corrispondenza nella stringa di input.

Overload

IsMatch(String, String, RegexOptions, TimeSpan)

Indica se l'espressione regolare specificata trova una corrispondenza nella stringa di input specificata usando le opzioni di corrispondenza specificate e l'intervallo di timeout.

IsMatch(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan)

Indica se l'espressione regolare specificata trova una corrispondenza nell'intervallo di input specificato, usando le opzioni di corrispondenza specificate e l'intervallo di timeout specificati.

IsMatch(String, String, RegexOptions)

Indica se l'espressione regolare specificata trova una corrispondenza nella stringa di input specificata usando le opzioni di corrispondenza specificate.

IsMatch(ReadOnlySpan<Char>, String, RegexOptions)

Indica se l'espressione regolare specificata trova una corrispondenza nell'intervallo di input specificato usando le opzioni di corrispondenza specificate.

IsMatch(String, String)

Indica se l'espressione regolare specificata trova una corrispondenza nella stringa di input specificata.

IsMatch(ReadOnlySpan<Char>, String)

Indica se l'espressione regolare specificata trova una corrispondenza nell'intervallo di input specificato.

IsMatch(ReadOnlySpan<Char>, Int32)

Indica se l'espressione regolare specificata nel costruttore Regex trova una corrispondenza in un intervallo di input specificato.

IsMatch(String)

Indica se l'espressione regolare specificata nel costruttore Regex trova una corrispondenza in una stringa di input specificata.

IsMatch(ReadOnlySpan<Char>)

Indica se l'espressione regolare specificata nel costruttore Regex trova una corrispondenza in un intervallo di input specificato.

IsMatch(String, Int32)

Indica se l'espressione regolare specificata nel costruttore Regex trova una corrispondenza nella stringa di input specificata, a partire dalla posizione iniziale specificata nella stringa.

IsMatch(String, String, RegexOptions, TimeSpan)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
Regex.Match.cs

Indica se l'espressione regolare specificata trova una corrispondenza nella stringa di input specificata usando le opzioni di corrispondenza specificate e l'intervallo di timeout.

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

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 forniscono le opzioni per la corrispondenza.

matchTimeout
TimeSpan

Intervallo di timeout o InfiniteMatchTimeout per indicare che per il metodo non è previsto un timeout.

Restituisce

true se l'espressione regolare individua una corrispondenza; in caso contrario, false.

Eccezioni

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

input o pattern è null.

options non è un valore valido di RegexOptions.

-oppure-

matchTimeout è negativo, zero o maggiore di circa 24 giorni.

Si è verificato un timeout.

Esempio

Nell'esempio seguente viene illustrato l'uso IsMatch(String, String, RegexOptions, TimeSpan) del metodo per determinare se una stringa è un numero di parte valido. L'espressione regolare presuppone che il numero di parte abbia un formato specifico costituito da tre set di caratteri separati da trattini. Il primo set, contenente quattro caratteri, deve essere costituito da un carattere alfanumerico seguito da due caratteri numerici seguiti da un carattere alfanumerico. Il secondo set, costituito da tre caratteri, deve essere numerico. Il terzo set, costituito da quattro caratteri, deve avere tre caratteri numerici seguiti da un carattere alfanumerico. La corrispondenza del modello di espressione regolare deve comportare una ricerca minima tramite la stringa di input, quindi il metodo imposta un intervallo di timeout di 500 millisecondi.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] partNumbers= { "1298-673-4192", "A08Z-931-468a", 
                              "_A90-123-129X", "12345-KKA-1230", 
                              "0919-2893-1256" };
      string pattern = @"^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$";
      foreach (string partNumber in partNumbers)
         try {
            Console.WriteLine("{0} {1} a valid part number.", 
                              partNumber, 
                              Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase) 
                                            ? "is" : "is not", TimeSpan.FromMilliseconds(500));
         }
         catch (RegexMatchTimeoutException e) {
            Console.WriteLine("Timeout after {0} seconds matching {1}.",
                              e.MatchTimeout, e.Input);
         }
   }
}
// The example displays the following output:
//       1298-673-4192 is a valid part number.
//       A08Z-931-468a is a valid part number.
//       _A90-123-129X is not a valid part number.
//       12345-KKA-1230 is not a valid part number.
//       0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468a", 
                                      "_A90-123-129X", "12345-KKA-1230", 
                                      "0919-2893-1256" }
      Dim pattern As String = "^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$"
      For Each partNumber As String In partNumbers
         Try
            Console.WriteLine("{0} {1} a valid part number.", 
                              partNumber, _
                              IIF(Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase), _
                                  "is", "is not"),
                              TimeSpan.FromMilliseconds(500))
         Catch e As RegexMatchTimeoutException
            Console.WriteLine("Timeout after {0} seconds matching {1}.",
                              e.MatchTimeout, e.Input)
         End Try
      Next
   End Sub
End Module
' The example displays the following output:
'       1298-673-4192 is a valid part number.
'       A08Z-931-468a is a valid part number.
'       _A90-123-129X is not a valid part number.
'       12345-KKA-1230 is not a valid part number.
'       0919-2893-1256 is not a valid part number.

Il criterio di ricerca di espressioni regolari è:

^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$

Nella tabella seguente è illustrata l'interpretazione del criterio di ricerca di espressioni regolari.

Modello Descrizione
^ Inizia la ricerca della corrispondenza all'inizio della stringa.
[A-Z0-9] Corrisponde a qualsiasi carattere alfabetico singolo da A tramite Zo qualsiasi carattere numerico.
\d{2} Corrisponde a due caratteri numerici.
[A-Z0-9] Corrisponde a qualsiasi carattere alfabetico singolo da A tramite Zo qualsiasi carattere numerico.
- Trova la corrispondenza con un segno meno.
\d{3} Corrisponde esattamente a tre caratteri numerici.
(-\d{3}){2} Trovare un trattino seguito da tre caratteri numerici e trovare due occorrenze di questo modello.
[A-Z0-9] Corrisponde a qualsiasi carattere alfabetico singolo da A tramite Zo qualsiasi carattere numerico.
$ Terminare la corrispondenza alla fine della stringa.

La chiamata al metodo con il IsMatch(String, String, RegexOptions, TimeSpan) parametro impostato su RegexOptions.IgnoreCase equivale a definire l'espressione options regolare seguente:

[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]

Per il confronto, vedere l'esempio per il IsMatch(String, String) metodo .

Commenti

Il IsMatch metodo viene in genere usato per convalidare una stringa o per assicurarsi che una stringa sia conforme a un modello specifico senza recuperare tale stringa per la manipolazione successiva. Se si vuole determinare se una o più stringhe corrispondono a un modello di espressione regolare e quindi recuperarle per la modifica successiva, chiamare il Match metodo o Matches .

Il metodo statico IsMatch(String, String, RegexOptions, TimeSpan) equivale a costruire un Regex oggetto con il modello di espressione regolare specificato da pattern e le opzioni di espressione regolari specificate options e chiamando il metodo di IsMatch(String) istanza. Questo modello di espressione regolare viene memorizzato nella cache per il recupero rapido dal motore di espressioni regolari.

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 matchTimeout parametro specifica la durata di un metodo di corrispondenza del modello per cercare una corrispondenza prima del timeout. L'impostazione di un intervallo di timeout impedisce alle espressioni regolari che si basano su un backtracking eccessivo di apparire per interrompere la risposta quando elaborano l'input che contiene corrispondenze vicine. Per altre informazioni, vedere Procedure consigliate per espressioni regolari e Backtracking. Se non viene trovata alcuna corrispondenza nell'intervallo di tempo, il metodo genera un'eccezione RegexMatchTimeoutException . matchTimeout esegue l'override di qualsiasi valore di timeout predefinito definito per il dominio dell'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 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

IsMatch(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
Regex.Match.cs

Indica se l'espressione regolare specificata trova una corrispondenza nell'intervallo di input specificato, usando le opzioni di corrispondenza specificate e l'intervallo di timeout specificati.

public:
 static bool IsMatch(ReadOnlySpan<char> input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static bool IsMatch (ReadOnlySpan<char> input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member IsMatch : ReadOnlySpan<char> * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> bool
Public Shared Function IsMatch (input As ReadOnlySpan(Of Char), pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As Boolean

Parametri

input
ReadOnlySpan<Char>

Intervallo da 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 forniscono le opzioni per la corrispondenza.

matchTimeout
TimeSpan

Intervallo di timeout o InfiniteMatchTimeout per indicare che per il metodo non è previsto un timeout.

Restituisce

true se l'espressione regolare individua una corrispondenza; in caso contrario, false.

Eccezioni

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

pattern è null

Si è verificato un timeout.

options non è in un valore valido RegexOptions o matchTimeout è negativo, zero o maggiore di circa 24 giorni.

Si applica a

IsMatch(String, String, RegexOptions)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
Regex.Match.cs

Indica se l'espressione regolare specificata trova una corrispondenza nella stringa di input specificata usando le opzioni di corrispondenza specificate.

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

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 forniscono le opzioni per la corrispondenza.

Restituisce

true se l'espressione regolare individua una corrispondenza; in caso contrario, false.

Eccezioni

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

input o pattern è null.

options non è un valore valido di RegexOptions.

Si è verificato un timeout. Per altre informazioni sui timeout, vedere la sezione Osservazioni.

Esempio

Nell'esempio seguente viene illustrato l'uso IsMatch(String, String) del metodo per determinare se una stringa è un numero di parte valido. L'espressione regolare presuppone che il numero di parte abbia un formato specifico costituito da tre set di caratteri separati da trattini. Il primo set, contenente quattro caratteri, deve essere costituito da un carattere alfanumerico seguito da due caratteri numerici seguiti da un carattere alfanumerico. Il secondo set, costituito da tre caratteri, deve essere numerico. Il terzo set, costituito da quattro caratteri, deve avere tre caratteri numerici seguiti da un carattere alfanumerico.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] partNumbers= { "1298-673-4192", "A08Z-931-468a", 
                              "_A90-123-129X", "12345-KKA-1230", 
                              "0919-2893-1256" };
      string pattern = @"^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$";
      foreach (string partNumber in partNumbers)
         Console.WriteLine("{0} {1} a valid part number.", 
                           partNumber, 
                           Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase) 
                                         ? "is" : "is not");
   }
}
// The example displays the following output:
//       1298-673-4192 is a valid part number.
//       A08Z-931-468a is a valid part number.
//       _A90-123-129X is not a valid part number.
//       12345-KKA-1230 is not a valid part number.
//       0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468a", _
                                      "_A90-123-129X", "12345-KKA-1230", _
                                      "0919-2893-1256" }
      Dim pattern As String = "^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$"
      For Each partNumber As String In partNumbers
         Console.WriteLine("{0} {1} a valid part number.", _
                           partNumber, _
                           IIF(Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase), _
                               "is", "is not"))
      Next
   End Sub
End Module
' The example displays the following output:
'       1298-673-4192 is a valid part number.
'       A08Z-931-468a is a valid part number.
'       _A90-123-129X is not a valid part number.
'       12345-KKA-1230 is not a valid part number.
'       0919-2893-1256 is not a valid part number.

Il criterio di ricerca di espressioni regolari è:

^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$

Nella tabella seguente è illustrata l'interpretazione del criterio di ricerca di espressioni regolari.

Modello Descrizione
^ Inizia la ricerca della corrispondenza all'inizio della stringa.
[A-Z0-9] Corrisponde a qualsiasi carattere alfabetico singolo da A tramite Zo qualsiasi carattere numerico.
\d{2} Corrisponde a due caratteri numerici.
[A-Z0-9] Trova la corrispondenza con qualsiasi carattere A alfabetico da a Zo qualsiasi carattere numerico.
- Trova la corrispondenza con un segno meno.
\d{3} Trova esattamente tre caratteri numerici.
(-\d{3}){2} Individuare un trattino seguito da tre caratteri numerici le due occorrenze di questo modello.
[A-Z0-9] Trova la corrispondenza con qualsiasi carattere A alfabetico da a Zo qualsiasi carattere numerico.
$ Terminare la corrispondenza alla fine della stringa.

La chiamata al IsMatch(String, String, RegexOptions) metodo con il options parametro impostato su RegexOptions.IgnoreCase equivale alla definizione dell'espressione regolare seguente:

[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]

Per il confronto, vedere l'esempio per il IsMatch(String, String) metodo .

Commenti

Il IsMatch metodo viene in genere usato per convalidare una stringa o per assicurarsi che una stringa sia conforme a un modello specifico senza recuperare tale stringa per la manipolazione successiva. Se si desidera determinare se una o più stringhe corrispondono a un criterio di espressione regolare e quindi recuperarle per una successiva manipolazione, chiamare il Match metodo o Matches .

Il metodo statico IsMatch(String, String, RegexOptions) equivale a costruire un Regex oggetto con il criterio di espressione regolare specificato da pattern e le opzioni di espressione regolare specificate da options e chiamando il metodo di IsMatch(String) istanza. Questo modello di espressione regolare viene memorizzato nella cache per il recupero rapido dal motore delle espressioni regolari.

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.

L'eccezione RegexMatchTimeoutException viene generata se il tempo di esecuzione dell'operazione corrispondente supera l'intervallo di timeout specificato per il dominio dell'applicazione in cui viene chiamato il metodo . Se non viene definito alcun timeout nelle proprietà del dominio applicazione o se il valore di timeout è Regex.InfiniteMatchTimeout, non viene generata alcuna eccezione.

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 la verifica di una corrispondenza del modello è IsMatch(String, String, RegexOptions, TimeSpan), che consente di impostare l'intervallo di timeout.

Vedi anche

Si applica a

IsMatch(ReadOnlySpan<Char>, String, RegexOptions)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
Regex.Match.cs

Indica se l'espressione regolare specificata trova una corrispondenza nell'intervallo di input specificato, utilizzando le opzioni di corrispondenza specificate.

public:
 static bool IsMatch(ReadOnlySpan<char> input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static bool IsMatch (ReadOnlySpan<char> input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member IsMatch : ReadOnlySpan<char> * string * System.Text.RegularExpressions.RegexOptions -> bool
Public Shared Function IsMatch (input As ReadOnlySpan(Of Char), pattern As String, options As RegexOptions) As Boolean

Parametri

input
ReadOnlySpan<Char>

Intervallo in cui 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 forniscono le opzioni per la corrispondenza.

Restituisce

true se l'espressione regolare individua una corrispondenza; in caso contrario, false.

Eccezioni

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

pattern è null

Si è verificato un timeout.

options non è in un valore valido RegexOptions .

Si applica a

IsMatch(String, String)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
Regex.Match.cs

Indica se l'espressione regolare specificata trova una corrispondenza nella stringa di input specificata.

public:
 static bool IsMatch(System::String ^ input, System::String ^ pattern);
public static bool IsMatch (string input, string pattern);
static member IsMatch : string * string -> bool
Public Shared Function IsMatch (input As String, pattern As String) As Boolean

Parametri

input
String

Stringa nella quale cercare una corrispondenza.

pattern
String

Criterio di espressione regolare di cui trovare la corrispondenza.

Restituisce

true se l'espressione regolare individua una corrispondenza; in caso contrario, false.

Eccezioni

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

input o pattern è null.

Si è verificato un timeout. Per altre informazioni sui timeout, vedere la sezione Osservazioni.

Esempio

Nell'esempio seguente viene illustrato l'uso del IsMatch(String, String) metodo per determinare se una stringa è un numero di parte valido. L'espressione regolare presuppone che il numero di parte abbia un formato specifico costituito da tre set di caratteri separati da trattini. Il primo set, che contiene quattro caratteri, deve essere costituito da un carattere alfanumerico seguito da due caratteri numerici seguiti da un carattere alfanumerico. Il secondo set, costituito da tre caratteri, deve essere numerico. Il terzo set, costituito da quattro caratteri, deve avere tre caratteri numerici seguiti da un carattere alfanumerico.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] partNumbers= { "1298-673-4192", "A08Z-931-468A", 
                              "_A90-123-129X", "12345-KKA-1230", 
                              "0919-2893-1256" };
      string pattern = @"^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$";
      foreach (string partNumber in partNumbers)
         Console.WriteLine("{0} {1} a valid part number.", 
                           partNumber, 
                           Regex.IsMatch(partNumber, pattern) ? "is" : "is not");
   }
}
// The example displays the following output:
//       1298-673-4192 is a valid part number.
//       A08Z-931-468A is a valid part number.
//       _A90-123-129X is not a valid part number.
//       12345-KKA-1230 is not a valid part number.
//       0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468A", _
                                      "_A90-123-129X", "12345-KKA-1230", _
                                      "0919-2893-1256" }
      Dim pattern As String = "^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$"
      For Each partNumber As String In partNumbers
         Console.WriteLine("{0} {1} a valid part number.", _
                           partNumber, _
                           IIF(Regex.IsMatch(partNumber, pattern), "is", "is not"))
      Next
   End Sub
End Module
' The example displays the following output:
'       1298-673-4192 is a valid part number.
'       A08Z-931-468A is a valid part number.
'       _A90-123-129X is not a valid part number.
'       12345-KKA-1230 is not a valid part number.
'       0919-2893-1256 is not a valid part number.

Il criterio di ricerca di espressioni regolari è:

^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$

Nella tabella seguente è illustrata l'interpretazione del criterio di ricerca di espressioni regolari.

Modello Descrizione
^ Iniziare la corrispondenza all'inizio della riga.
[a-zA-Z0-9] Trova la corrispondenza con un singolo carattere alfabetico (ada o A a zZ) o un carattere numerico.
\d{2} Trova la corrispondenza con due caratteri numerici.
[a-zA-Z0-9] Trova la corrispondenza con un singolo carattere alfabetico (ada o A a zZ) o un carattere numerico.
- Trova la corrispondenza con un segno meno.
\d{3} Trova esattamente tre caratteri numerici.
(-\d{3}){2} Trovare un trattino seguito da tre caratteri numerici e trovare due occorrenze di questo modello.
[a-zA-Z0-9] Trova la corrispondenza con un singolo carattere alfabetico (ada o A a zZ) o un carattere numerico.
$ Terminare la corrispondenza alla fine della riga.

Commenti

Il IsMatch metodo viene in genere usato per convalidare una stringa o per assicurarsi che una stringa sia conforme a un modello specifico senza recuperare tale stringa per la manipolazione successiva. Se si desidera determinare se una o più stringhe corrispondono a un criterio di espressione regolare e quindi recuperarle per una successiva manipolazione, chiamare il Match metodo o Matches .

Il metodo statico IsMatch(String, String) equivale a costruire un Regex oggetto con il modello di espressione regolare specificato da pattern e chiamando il metodo di IsMatch(String) istanza. Questo modello di espressione regolare viene memorizzato nella cache per il recupero rapido dal motore delle espressioni regolari.

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.

L'eccezione RegexMatchTimeoutException viene generata se il tempo di esecuzione dell'operazione corrispondente supera l'intervallo di timeout specificato per il dominio dell'applicazione in cui viene chiamato il metodo . Se non viene definito alcun timeout nelle proprietà del dominio applicazione o se il valore di timeout è Regex.InfiniteMatchTimeout, non viene generata alcuna eccezione.

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 il metodo . 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 verificare una corrispondenza del criterio è IsMatch(String, String, RegexOptions, TimeSpan), che consente di impostare l'intervallo di timeout.

Vedi anche

Si applica a

IsMatch(ReadOnlySpan<Char>, String)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
Regex.Match.cs

Indica se l'espressione regolare specificata trova una corrispondenza nell'intervallo di input specificato.

public:
 static bool IsMatch(ReadOnlySpan<char> input, System::String ^ pattern);
public static bool IsMatch (ReadOnlySpan<char> input, string pattern);
static member IsMatch : ReadOnlySpan<char> * string -> bool
Public Shared Function IsMatch (input As ReadOnlySpan(Of Char), pattern As String) As Boolean

Parametri

input
ReadOnlySpan<Char>

Intervallo in cui cercare una corrispondenza.

pattern
String

Criterio di espressione regolare di cui trovare la corrispondenza.

Restituisce

true se l'espressione regolare individua una corrispondenza; in caso contrario, false.

Eccezioni

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

pattern è null

Si è verificato un timeout.

Si applica a

IsMatch(ReadOnlySpan<Char>, Int32)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
Regex.Match.cs

Indica se l'espressione regolare specificata nel costruttore Regex trova una corrispondenza in un intervallo di input specificato.

public:
 bool IsMatch(ReadOnlySpan<char> input, int startat);
public bool IsMatch (ReadOnlySpan<char> input, int startat);
member this.IsMatch : ReadOnlySpan<char> * int -> bool
Public Function IsMatch (input As ReadOnlySpan(Of Char), startat As Integer) As Boolean

Parametri

input
ReadOnlySpan<Char>

Intervallo in cui cercare una corrispondenza.

startat
Int32

Posizione del carattere in base zero dalla quale iniziare la ricerca.

Restituisce

true se l'espressione regolare individua una corrispondenza; in caso contrario, false.

Eccezioni

Si è verificato un timeout.

Si applica a

IsMatch(String)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
Regex.Match.cs

Indica se l'espressione regolare specificata nel costruttore Regex trova una corrispondenza in una stringa di input specificata.

public:
 bool IsMatch(System::String ^ input);
public bool IsMatch (string input);
member this.IsMatch : string -> bool
Public Function IsMatch (input As String) As Boolean

Parametri

input
String

Stringa nella quale cercare una corrispondenza.

Restituisce

true se l'espressione regolare individua una corrispondenza; in caso contrario, false.

Eccezioni

input è null.

Si è verificato un timeout. Per altre informazioni sui timeout, vedere la sezione Osservazioni.

Esempio

Nell'esempio seguente viene illustrato l'uso del IsMatch(String) metodo per determinare se una stringa è un numero di parte valido. L'espressione regolare presuppone che il numero di parte abbia un formato specifico costituito da tre set di caratteri separati da trattini. Il primo set, che contiene quattro caratteri, deve essere costituito da un carattere alfanumerico seguito da due caratteri numerici seguiti da un carattere alfanumerico. Il secondo set, costituito da tre caratteri, deve essere numerico. Il terzo set, costituito da quattro caratteri, deve avere tre caratteri numerici seguiti da un carattere alfanumerico.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] partNumbers= { "1298-673-4192", "A08Z-931-468A", 
                              "_A90-123-129X", "12345-KKA-1230", 
                              "0919-2893-1256" };
      Regex rgx = new Regex(@"^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$");
      foreach (string partNumber in partNumbers)
         Console.WriteLine("{0} {1} a valid part number.", 
                           partNumber, 
                           rgx.IsMatch(partNumber) ? "is" : "is not");
   }
}
// The example displays the following output:
//       1298-673-4192 is a valid part number.
//       A08Z-931-468A is a valid part number.
//       _A90-123-129X is not a valid part number.
//       12345-KKA-1230 is not a valid part number.
//       0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468A", _
                                      "_A90-123-129X", "12345-KKA-1230", _
                                      "0919-2893-1256" }
      Dim rgx As New Regex("^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$")
      For Each partNumber As String In partNumbers
         Console.WriteLine("{0} {1} a valid part number.", _
                           partNumber, _
                           IIF(rgx.IsMatch(partNumber), "is", "is not"))
      Next
   End Sub
End Module
' The example displays the following output:
'       1298-673-4192 is a valid part number.
'       A08Z-931-468A is a valid part number.
'       _A90-123-129X is not a valid part number.
'       12345-KKA-1230 is not a valid part number.
'       0919-2893-1256 is not a valid part number.

Il criterio di ricerca di espressioni regolari è:

^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$

Nella tabella seguente è illustrata l'interpretazione del criterio di ricerca di espressioni regolari.

Modello Descrizione
^ Iniziare la corrispondenza all'inizio della riga.
[a-zA-Z0-9] Trova la corrispondenza con un singolo carattere alfabetico (ada o A a zZ) o un carattere numerico.
\d{2} Trova la corrispondenza con due caratteri numerici.
[a-zA-Z0-9] Trova la corrispondenza con un singolo carattere alfabetico (ada o A a zZ) o un carattere numerico.
- Trova la corrispondenza con un segno meno.
\d{3} Trova esattamente tre caratteri numerici.
(-\d{3}){2} Trovare un trattino seguito da tre caratteri numerici e trovare due occorrenze di questo modello.
[a-zA-Z0-9] Trova la corrispondenza con un singolo carattere alfabetico (ada o A a zZ) o un carattere numerico.
$ Terminare la corrispondenza alla fine della riga.

Commenti

Il IsMatch metodo viene in genere usato per convalidare una stringa o per assicurarsi che una stringa sia conforme a un modello specifico senza recuperare tale stringa per la manipolazione successiva. Se si desidera determinare se una o più stringhe corrispondono a un criterio di espressione regolare e quindi recuperarle per una successiva manipolazione, chiamare il Match metodo o Matches .

L'eccezione RegexMatchTimeoutException viene generata se il tempo di esecuzione dell'operazione corrispondente supera l'intervallo di timeout specificato dal Regex.Regex(String, RegexOptions, TimeSpan) costruttore. 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 Regex costruttore o nelle proprietà del dominio applicazione o se il valore di timeout è Regex.InfiniteMatchTimeout, non viene generata alcuna eccezione.

Vedi anche

Si applica a

IsMatch(ReadOnlySpan<Char>)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
Regex.Match.cs

Indica se l'espressione regolare specificata nel costruttore Regex trova una corrispondenza in un intervallo di input specificato.

public:
 bool IsMatch(ReadOnlySpan<char> input);
public bool IsMatch (ReadOnlySpan<char> input);
member this.IsMatch : ReadOnlySpan<char> -> bool
Public Function IsMatch (input As ReadOnlySpan(Of Char)) As Boolean

Parametri

input
ReadOnlySpan<Char>

Intervallo in cui cercare una corrispondenza.

Restituisce

true se l'espressione regolare individua una corrispondenza; in caso contrario, false.

Eccezioni

Si è verificato un timeout.

Si applica a

IsMatch(String, Int32)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
Regex.Match.cs

Indica se l'espressione regolare specificata nel costruttore Regex trova una corrispondenza nella stringa di input specificata, a partire dalla posizione iniziale specificata nella stringa.

public:
 bool IsMatch(System::String ^ input, int startat);
public bool IsMatch (string input, int startat);
member this.IsMatch : string * int -> bool
Public Function IsMatch (input As String, startat As Integer) As Boolean

Parametri

input
String

Stringa nella quale cercare una corrispondenza.

startat
Int32

Posizione del carattere dalla quale iniziare la ricerca.

Restituisce

true se l'espressione regolare individua una corrispondenza; in caso contrario, false.

Eccezioni

input è null.

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

Si è verificato un timeout. Per altre informazioni sui timeout, vedere la sezione Osservazioni.

Esempio

Nell'esempio seguente viene illustrato l'uso del IsMatch(String, Int32) metodo per determinare se una stringa è un numero di parte valido. Cerca un numero di parte che segue due punti (:) carattere in una stringa. Il IndexOf(Char) metodo viene utilizzato per determinare la posizione del carattere due punti, che viene quindi passato al IsMatch(String, Int32) metodo . L'espressione regolare presuppone che il numero di parte abbia un formato specifico costituito da tre set di caratteri separati da trattini. Il primo set, che contiene quattro caratteri, deve essere costituito da un carattere alfanumerico seguito da due caratteri numerici seguiti da un carattere alfanumerico. Il secondo set, costituito da tre caratteri, deve essere numerico. Il terzo set, costituito da quattro caratteri, deve avere tre caratteri numerici seguiti da un carattere alfanumerico.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] partNumbers= { "Part Number: 1298-673-4192", "Part No: A08Z-931-468A", 
                              "_A90-123-129X", "123K-000-1230", 
                              "SKU: 0919-2893-1256" };
      Regex rgx = new Regex(@"[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$");
      foreach (string partNumber in partNumbers)
      {
         int start = partNumber.IndexOf(':');
         if (start >= 0)
         {
            Console.WriteLine("{0} {1} a valid part number.", 
                              partNumber, 
                              rgx.IsMatch(partNumber, start) ? "is" : "is not");
         }
         else
         {
            Console.WriteLine("Cannot find starting position in {0}.", partNumber);
         }
      }
   }
}
// The example displays the following output:
//       Part Number: 1298-673-4192 is a valid part number.
//       Part No: A08Z-931-468A is a valid part number.
//       Cannot find starting position in _A90-123-129X.
//       Cannot find starting position in 123K-000-1230.
//       SKU: 0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim partNumbers() As String = { "Part Number: 1298-673-4192", "Part No: A08Z-931-468A", _
                                      "_A90-123-129X", "123K-000-1230", _
                                      "SKU: 0919-2893-1256" }
      Dim rgx As New Regex("[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$")
      For Each partNumber As String In partNumbers
         Dim start As Integer = partNumber.IndexOf(":"c)
         If start >= 0 Then 
            Console.WriteLine("{0} {1} a valid part number.", _
                              partNumber, _
                              IIF(rgx.IsMatch(partNumber, start), "is", "is not"))
         Else
            Console.WriteLine("Cannot find starting position in {0}.", partNumber)
         End If                              
      Next
   End Sub
End Module
' The example displays the following output:
'       Part Number: 1298-673-4192 is a valid part number.
'       Part No: A08Z-931-468A is a valid part number.
'       Cannot find starting position in _A90-123-129X.
'       Cannot find starting position in 123K-000-1230.
'       SKU: 0919-2893-1256 is not a valid part number.

Il criterio di ricerca di espressioni regolari è:

[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$

Nella tabella seguente è illustrata l'interpretazione del criterio di ricerca di espressioni regolari.

Modello Descrizione
[a-zA-Z0-9] Trova la corrispondenza con un singolo carattere alfabetico (ada o A a zZ) o un carattere numerico.
\d{2} Trova la corrispondenza con due caratteri numerici.
[a-zA-Z0-9] Trova la corrispondenza con un singolo carattere alfabetico (ada o A a zZ) o un carattere numerico.
- Trova la corrispondenza con un segno meno.
\d{3} Trova esattamente tre caratteri numerici.
(-\d{3}){2} Trovare un trattino seguito da tre caratteri numerici e trovare due occorrenze di questo modello.
[a-zA-Z0-9] Trova la corrispondenza con un singolo carattere alfabetico (ada o A a zZ) o un carattere numerico.
$ Terminare la corrispondenza alla fine della riga.

Commenti

Il IsMatch metodo viene in genere usato per convalidare una stringa o per assicurarsi che una stringa sia conforme a un modello specifico senza recuperare tale stringa per la manipolazione successiva. Se si desidera determinare se una o più stringhe corrispondono a un criterio di espressione regolare e quindi recuperarle per una successiva manipolazione, chiamare il Match metodo o Matches .

Per altre informazioni su startat, vedere la sezione Osservazioni di Match(String, Int32).

L'eccezione RegexMatchTimeoutException viene generata se il tempo di esecuzione dell'operazione corrispondente supera l'intervallo di timeout specificato dal Regex.Regex(String, RegexOptions, TimeSpan) costruttore. 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 Regex costruttore o nelle proprietà del dominio applicazione o se il valore di timeout è Regex.InfiniteMatchTimeout, non viene generata alcuna eccezione.

Vedi anche

Si applica a