Regex.IsMatch Método

Definición

Indica si la expresión regular encuentra una coincidencia en la cadena de entrada.

Sobrecargas

IsMatch(String, String, RegexOptions, TimeSpan)

Indica si la expresión regular especificada encuentra una coincidencia en la cadena de entrada indicada, utilizando para ello las opciones de coincidencia y el intervalo de tiempo de espera que se especifiquen.

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

Indica si la expresión regular especificada encuentra una coincidencia en el intervalo de entrada especificado, utilizando las opciones de coincidencia y el intervalo de tiempo de espera especificados.

IsMatch(String, String, RegexOptions)

Indica si la expresión regular especificada encuentra una coincidencia en la cadena de entrada indicada, utilizando para ello las opciones de coincidencia especificadas.

IsMatch(ReadOnlySpan<Char>, String, RegexOptions)

Indica si la expresión regular especificada encuentra una coincidencia en el intervalo de entrada especificado, utilizando las opciones de coincidencia especificadas.

IsMatch(String, String)

Indica si la expresión regular especificada busca una coincidencia en la cadena de entrada indicada.

IsMatch(ReadOnlySpan<Char>, String)

Indica si la expresión regular especificada encuentra una coincidencia en el intervalo de entrada especificado.

IsMatch(ReadOnlySpan<Char>, Int32)

Indica si la expresión regular especificada en el constructor Regex encuentra una coincidencia en un intervalo de entrada especificado.

IsMatch(String)

Indica si la expresión regular especificada en el constructor Regex encuentra una coincidencia en una cadena de entrada indicada.

IsMatch(ReadOnlySpan<Char>)

Indica si la expresión regular especificada en el constructor Regex encuentra una coincidencia en un intervalo de entrada especificado.

IsMatch(String, Int32)

Indica si la expresión regular especificada en el constructor Regex encuentra una coincidencia en la cadena de entrada especificada, empezando en la posición inicial indicada en la cadena.

IsMatch(String, String, RegexOptions, TimeSpan)

Indica si la expresión regular especificada encuentra una coincidencia en la cadena de entrada indicada, utilizando para ello las opciones de coincidencia y el intervalo de tiempo de espera que se especifiquen.

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

Parámetros

input
String

Cadena en la que se va a buscar una coincidencia.

pattern
String

Patrón de expresión regular del que van a buscarse coincidencias.

options
RegexOptions

Combinación bit a bit de los valores de enumeración que proporcionan opciones de coincidencia.

matchTimeout
TimeSpan

Un intervalo de tiempo de espera, o InfiniteMatchTimeout para indicar que el método no debe agotar el tiempo de espera.

Devoluciones

true si la expresión regular encuentra una coincidencia; en caso contrario, false.

Excepciones

Se produjo un error de análisis de expresión regular.

input o pattern es null.

options no es un valor RegexOptions válido.

o bien

matchTimeout es negativo, cero o mayor que 24 días aproximadamente.

Se agotó el tiempo de espera.

Ejemplos

En el ejemplo siguiente se muestra el uso del método para determinar si una cadena es un número de IsMatch(String, String, RegexOptions, TimeSpan) pieza válido. La expresión regular supone que el número de pieza tiene un formato específico que consta de tres conjuntos de caracteres separados por guiones. El primer conjunto, que contiene cuatro caracteres, debe constar de un carácter alfanumérico seguido de dos caracteres numéricos seguidos de un carácter alfanumérico. El segundo conjunto, que consta de tres caracteres, debe ser numérico. El tercer conjunto, que consta de cuatro caracteres, debe tener tres caracteres numéricos seguidos de un carácter alfanumérico. La coincidencia del patrón de expresión regular debe implicar una búsqueda mínima a través de la cadena de entrada, por lo que el método establece un intervalo de tiempo de espera de 500 milisegundos.

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.

El patrón de la expresión regular es:

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

En la siguiente tabla se muestra cómo se interpreta el patrón de expresión regular.

Modelo Descripción
^ Empieza la búsqueda de coincidencias en el principio de la cadena.
[A-Z0-9] Coincide con cualquier carácter alfabético único de A a través Zde o cualquier carácter numérico.
\d{2} Coincide con dos caracteres numéricos.
[A-Z0-9] Coincide con cualquier carácter alfabético único de A a través Zde o cualquier carácter numérico.
- Buscar coincidencias con un guion.
\d{3} Coincide exactamente con tres caracteres numéricos.
(-\d{3}){2} Busque un guión seguido de tres caracteres numéricos y coincida con dos repeticiones de este patrón.
[A-Z0-9] Coincide con cualquier carácter alfabético único de A a través Zde o cualquier carácter numérico.
$ Finalizar la búsqueda al final de la cadena.

Llamar al IsMatch(String, String, RegexOptions, TimeSpan) método con el options parámetro establecido en RegexOptions.IgnoreCase equivale a definir la siguiente expresión regular:

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

Para obtener una comparación, consulte el ejemplo del IsMatch(String, String) método .

Comentarios

El IsMatch método se usa normalmente para validar una cadena o para asegurarse de que una cadena se ajusta a un patrón determinado sin recuperar esa cadena para su posterior manipulación. Si desea determinar si una o varias cadenas coinciden con un patrón de expresión regular y, a continuación, recuperarlas para su posterior manipulación, llame al Match método o Matches .

El método estático IsMatch(String, String, RegexOptions, TimeSpan) equivale a construir un Regex objeto con el patrón de expresión regular especificado por pattern y las opciones de expresión regular especificadas por options y llamando al método de IsMatch(String) instancia. Este patrón de expresión regular se almacena en caché para la recuperación rápida por parte del motor de expresiones regulares.

El pattern parámetro consta de elementos del lenguaje de expresiones regulares que describen simbólicamente la cadena que debe coincidir. Para obtener más información sobre las expresiones regulares, vea Expresiones regulares de .NET y Lenguaje de expresiones regulares: referencia rápida.

El matchTimeout parámetro especifica cuánto tiempo un método de coincidencia de patrones debe intentar encontrar una coincidencia antes de que agote el tiempo de espera. Establecer un intervalo de tiempo de espera impide que las expresiones regulares que dependen del retroceso excesivo aparezcan para dejar de responder cuando procesan la entrada que contiene coincidencias cercanas. Para obtener más información, vea Procedimientos recomendados para expresiones regulares y retroceso. Si no se encuentra ninguna coincidencia en ese intervalo de tiempo, el método produce una RegexMatchTimeoutException excepción. matchTimeout invalida cualquier valor de tiempo de espera predeterminado definido para el dominio de aplicación en el que se ejecuta el método.

Notas a los autores de las llamadas

Se recomienda establecer el matchTimeout parámetro en un valor adecuado, como dos segundos. Si deshabilita los tiempos de espera especificando InfiniteMatchTimeout, el motor de expresiones regulares ofrece un rendimiento ligeramente mejor. Sin embargo, debe deshabilitar los tiempos de espera solo en las condiciones siguientes:

  • Cuando la entrada procesada por una expresión regular se deriva de un origen conocido y de confianza o consta de texto estático. Esto excluye el texto que los usuarios han introducido dinámicamente.

  • Cuando el patrón de expresión regular se ha probado exhaustivamente para asegurarse de que controla de forma eficaz las coincidencias, las no coincide y las coincidencias cercanas.

  • Cuando el patrón de expresión regular no contiene elementos de lenguaje que se sabe que provocan un retroceso excesivo al procesar una coincidencia cercana.

Consulte también

Se aplica a

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

Indica si la expresión regular especificada encuentra una coincidencia en el intervalo de entrada especificado, utilizando las opciones de coincidencia y el intervalo de tiempo de espera especificados.

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

Parámetros

input
ReadOnlySpan<Char>

Intervalo que se va a buscar una coincidencia.

pattern
String

Patrón de expresión regular del que van a buscarse coincidencias.

options
RegexOptions

Combinación bit a bit de los valores de enumeración que proporcionan opciones de coincidencia.

matchTimeout
TimeSpan

Un intervalo de tiempo de espera, o InfiniteMatchTimeout para indicar que el método no debe agotar el tiempo de espera.

Devoluciones

true si la expresión regular encuentra una coincidencia; en caso contrario, false.

Excepciones

Se produjo un error de análisis de expresión regular.

pattern es null.

Se agotó el tiempo de espera.

options no está en un valor válido RegexOptions o matchTimeout es negativo, cero o mayor que aproximadamente 24 días.

Se aplica a

IsMatch(String, String, RegexOptions)

Indica si la expresión regular especificada encuentra una coincidencia en la cadena de entrada indicada, utilizando para ello las opciones de coincidencia especificadas.

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

Parámetros

input
String

Cadena en la que se va a buscar una coincidencia.

pattern
String

Patrón de expresión regular del que van a buscarse coincidencias.

options
RegexOptions

Combinación bit a bit de los valores de enumeración que proporcionan opciones de coincidencia.

Devoluciones

true si la expresión regular encuentra una coincidencia; en caso contrario, false.

Excepciones

Se produjo un error de análisis de expresión regular.

input o pattern es null.

options no es un valor RegexOptions válido.

Se agotó el tiempo de espera. Para más información sobre los tiempos de espera, vea la sección Comentarios.

Ejemplos

En el ejemplo siguiente se muestra el uso del método para determinar si una cadena es un número de IsMatch(String, String) pieza válido. La expresión regular supone que el número de pieza tiene un formato específico que consta de tres conjuntos de caracteres separados por guiones. El primer conjunto, que contiene cuatro caracteres, debe constar de un carácter alfanumérico seguido de dos caracteres numéricos seguidos de un carácter alfanumérico. El segundo conjunto, que consta de tres caracteres, debe ser numérico. El tercer conjunto, que consta de cuatro caracteres, debe tener tres caracteres numéricos seguidos de un carácter alfanumérico.

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.

El patrón de la expresión regular es:

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

En la siguiente tabla se muestra cómo se interpreta el patrón de expresión regular.

Modelo Descripción
^ Empieza la búsqueda de coincidencias en el principio de la cadena.
[A-Z0-9] Coincide con cualquier carácter alfabético único de A a través Zde o cualquier carácter numérico.
\d{2} Coincide con dos caracteres numéricos.
[A-Z0-9] Coincide con cualquier carácter alfabético único de A a través Zde o cualquier carácter numérico.
- Buscar coincidencias con un guion.
\d{3} Coincide exactamente con tres caracteres numéricos.
(-\d{3}){2} Busque un guión seguido de tres caracteres numéricos y coincida con dos repeticiones de este patrón.
[A-Z0-9] Coincide con cualquier carácter alfabético único de A a través Zde o cualquier carácter numérico.
$ Finalizar la búsqueda al final de la cadena.

Llamar al IsMatch(String, String, RegexOptions) método con el options parámetro establecido en RegexOptions.IgnoreCase equivale a definir la siguiente expresión regular:

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

Para obtener una comparación, consulte el ejemplo del IsMatch(String, String) método .

Comentarios

El IsMatch método se usa normalmente para validar una cadena o para asegurarse de que una cadena se ajusta a un patrón determinado sin recuperar esa cadena para su posterior manipulación. Si desea determinar si una o varias cadenas coinciden con un patrón de expresión regular y, a continuación, recuperarlas para su posterior manipulación, llame al Match método o Matches .

El método estático IsMatch(String, String, RegexOptions) equivale a construir un Regex objeto con el patrón de expresión regular especificado por pattern y las opciones de expresión regular especificadas por options y llamando al método de IsMatch(String) instancia. Este patrón de expresión regular se almacena en caché para la recuperación rápida por parte del motor de expresiones regulares.

El pattern parámetro consta de elementos del lenguaje de expresiones regulares que describen simbólicamente la cadena que debe coincidir. Para obtener más información sobre las expresiones regulares, vea Expresiones regulares de .NET y Lenguaje de expresiones regulares: referencia rápida.

La RegexMatchTimeoutException excepción se produce si el tiempo de ejecución de la operación coincidente supera el intervalo de tiempo de espera especificado para el dominio de aplicación en el que se llama al método . Si no se define ningún tiempo de espera en las propiedades del dominio de aplicación, o si el valor de tiempo de espera es Regex.InfiniteMatchTimeout, no se produce ninguna excepción.

Notas a los autores de las llamadas

Este método agota el tiempo de espera después de un intervalo que es igual al valor de tiempo de espera predeterminado del dominio de aplicación en el que se llama. Si no se ha definido un valor de tiempo de espera para el dominio de aplicación, se usa el valor InfiniteMatchTimeout, que impide que el método agote el tiempo de espera. El método estático recomendado para comprobar una coincidencia de patrón es IsMatch(String, String, RegexOptions, TimeSpan), lo que le permite establecer el intervalo de tiempo de espera.

Consulte también

Se aplica a

IsMatch(ReadOnlySpan<Char>, String, RegexOptions)

Indica si la expresión regular especificada encuentra una coincidencia en el intervalo de entrada especificado, utilizando las opciones de coincidencia especificadas.

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

Parámetros

input
ReadOnlySpan<Char>

Intervalo que se va a buscar una coincidencia.

pattern
String

Patrón de expresión regular del que van a buscarse coincidencias.

options
RegexOptions

Combinación bit a bit de los valores de enumeración que proporcionan opciones de coincidencia.

Devoluciones

true si la expresión regular encuentra una coincidencia; en caso contrario, false.

Excepciones

Se produjo un error de análisis de expresión regular.

pattern es null.

Se agotó el tiempo de espera.

options no está en un valor válido RegexOptions .

Se aplica a

IsMatch(String, String)

Indica si la expresión regular especificada busca una coincidencia en la cadena de entrada indicada.

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

Parámetros

input
String

Cadena en la que se va a buscar una coincidencia.

pattern
String

Patrón de expresión regular del que van a buscarse coincidencias.

Devoluciones

true si la expresión regular encuentra una coincidencia; en caso contrario, false.

Excepciones

Se produjo un error de análisis de expresión regular.

input o pattern es null.

Se agotó el tiempo de espera. Para más información sobre los tiempos de espera, vea la sección Comentarios.

Ejemplos

En el ejemplo siguiente se muestra el uso del método para determinar si una cadena es un número de IsMatch(String, String) pieza válido. La expresión regular supone que el número de pieza tiene un formato específico que consta de tres conjuntos de caracteres separados por guiones. El primer conjunto, que contiene cuatro caracteres, debe constar de un carácter alfanumérico seguido de dos caracteres numéricos seguidos de un carácter alfanumérico. El segundo conjunto, que consta de tres caracteres, debe ser numérico. El tercer conjunto, que consta de cuatro caracteres, debe tener tres caracteres numéricos seguidos de un carácter alfanumérico.

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.

El patrón de la expresión regular es:

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

En la siguiente tabla se muestra cómo se interpreta el patrón de expresión regular.

Modelo Descripción
^ Comience la coincidencia al principio de la línea.
[a-zA-Z0-9] Coincide con un único carácter alfabético (a a través z de o A a ) Zo un carácter numérico.
\d{2} Coincide con dos caracteres numéricos.
[a-zA-Z0-9] Coincide con un único carácter alfabético (a a través z de o A a ) Zo un carácter numérico.
- Buscar coincidencias con un guion.
\d{3} Coincide exactamente con tres caracteres numéricos.
(-\d{3}){2} Busque un guión seguido de tres caracteres numéricos y coincida con dos repeticiones de este patrón.
[a-zA-Z0-9] Coincide con un único carácter alfabético (a a través z de o A a ) Zo un carácter numérico.
$ Finalice la coincidencia al final de la línea.

Comentarios

El IsMatch método se usa normalmente para validar una cadena o para asegurarse de que una cadena se ajusta a un patrón determinado sin recuperar esa cadena para su posterior manipulación. Si desea determinar si una o varias cadenas coinciden con un patrón de expresión regular y, a continuación, recuperarlas para su posterior manipulación, llame al Match método o Matches .

El método estático IsMatch(String, String) es equivalente a construir un Regex objeto con el patrón de expresión regular especificado por pattern y llamar al método de IsMatch(String) instancia. Este patrón de expresión regular se almacena en caché para la recuperación rápida por parte del motor de expresiones regulares.

El pattern parámetro consta de elementos del lenguaje de expresiones regulares que describen simbólicamente la cadena que debe coincidir. Para obtener más información sobre las expresiones regulares, vea Expresiones regulares de .NET y Lenguaje de expresiones regulares: referencia rápida.

La RegexMatchTimeoutException excepción se produce si el tiempo de ejecución de la operación coincidente supera el intervalo de tiempo de espera especificado para el dominio de aplicación en el que se llama al método . Si no se define ningún tiempo de espera en las propiedades del dominio de aplicación, o si el valor de tiempo de espera es Regex.InfiniteMatchTimeout, no se produce ninguna excepción.

Notas a los autores de las llamadas

Este método agota el tiempo de espera después de un intervalo igual al valor de tiempo de espera predeterminado del dominio de aplicación en el que se llama al método . Si no se ha definido un valor de tiempo de espera para el dominio de aplicación, se usa el valor InfiniteMatchTimeout, que impide que el método agote el tiempo de espera. El método estático recomendado para comprobar una coincidencia de patrón es IsMatch(String, String, RegexOptions, TimeSpan), lo que le permite establecer el intervalo de tiempo de espera.

Consulte también

Se aplica a

IsMatch(ReadOnlySpan<Char>, String)

Indica si la expresión regular especificada encuentra una coincidencia en el intervalo de entrada especificado.

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

Parámetros

input
ReadOnlySpan<Char>

Intervalo que se va a buscar una coincidencia.

pattern
String

Patrón de expresión regular del que van a buscarse coincidencias.

Devoluciones

true si la expresión regular encuentra una coincidencia; en caso contrario, false.

Excepciones

Se produjo un error de análisis de expresión regular.

pattern es null.

Se agotó el tiempo de espera.

Se aplica a

IsMatch(ReadOnlySpan<Char>, Int32)

Indica si la expresión regular especificada en el constructor Regex encuentra una coincidencia en un intervalo de entrada especificado.

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

Parámetros

input
ReadOnlySpan<Char>

Intervalo que se va a buscar una coincidencia.

startat
Int32

Posición de carácter basada en cero en la que se va a iniciar la búsqueda.

Devoluciones

true si la expresión regular encuentra una coincidencia; en caso contrario, false.

Excepciones

Se agotó el tiempo de espera.

Se aplica a

IsMatch(String)

Indica si la expresión regular especificada en el constructor Regex encuentra una coincidencia en una cadena de entrada indicada.

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

Parámetros

input
String

Cadena en la que se va a buscar una coincidencia.

Devoluciones

true si la expresión regular encuentra una coincidencia; en caso contrario, false.

Excepciones

input es null.

Se agotó el tiempo de espera. Para más información sobre los tiempos de espera, vea la sección Comentarios.

Ejemplos

En el ejemplo siguiente se muestra el uso del método para determinar si una cadena es un número de IsMatch(String) pieza válido. La expresión regular supone que el número de pieza tiene un formato específico que consta de tres conjuntos de caracteres separados por guiones. El primer conjunto, que contiene cuatro caracteres, debe constar de un carácter alfanumérico seguido de dos caracteres numéricos seguidos de un carácter alfanumérico. El segundo conjunto, que consta de tres caracteres, debe ser numérico. El tercer conjunto, que consta de cuatro caracteres, debe tener tres caracteres numéricos seguidos de un carácter alfanumérico.

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.

El patrón de la expresión regular es:

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

En la siguiente tabla se muestra cómo se interpreta el patrón de expresión regular.

Modelo Descripción
^ Comience la coincidencia al principio de la línea.
[a-zA-Z0-9] Coincide con un único carácter alfabético (a a través z de o A a ) Zo un carácter numérico.
\d{2} Coincide con dos caracteres numéricos.
[a-zA-Z0-9] Coincide con un único carácter alfabético (a a través z de o A a ) Zo un carácter numérico.
- Buscar coincidencias con un guion.
\d{3} Coincide exactamente con tres caracteres numéricos.
(-\d{3}){2} Busque un guión seguido de tres caracteres numéricos y coincida con dos apariciones de este patrón.
[a-zA-Z0-9] Coincide con un solo carácter alfabético (a a través z de o A a Z) o un carácter numérico.
$ Finalice la coincidencia al final de la línea.

Comentarios

El IsMatch método se usa normalmente para validar una cadena o para asegurarse de que una cadena se ajusta a un patrón determinado sin recuperar esa cadena para su posterior manipulación. Si desea determinar si una o varias cadenas coinciden con un patrón de expresión regular y, a continuación, recuperarlas para su posterior manipulación, llame al Match método o Matches .

La RegexMatchTimeoutException excepción se produce si el tiempo de ejecución de la operación coincidente supera el intervalo de tiempo de espera especificado por el Regex.Regex(String, RegexOptions, TimeSpan) constructor. Si no establece un intervalo de tiempo de espera al llamar al constructor, se produce la excepción si la operación supera cualquier valor de tiempo de espera establecido para el dominio de aplicación en el que se crea el Regex objeto. Si no se define ningún tiempo de espera en la llamada del Regex constructor o en las propiedades del dominio de aplicación, o si el valor de tiempo de espera es Regex.InfiniteMatchTimeout, no se produce ninguna excepción.

Consulte también

Se aplica a

IsMatch(ReadOnlySpan<Char>)

Indica si la expresión regular especificada en el constructor Regex encuentra una coincidencia en un intervalo de entrada especificado.

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

Parámetros

input
ReadOnlySpan<Char>

Intervalo que se va a buscar una coincidencia.

Devoluciones

true si la expresión regular encuentra una coincidencia; en caso contrario, false.

Excepciones

Se agotó el tiempo de espera.

Se aplica a

IsMatch(String, Int32)

Indica si la expresión regular especificada en el constructor Regex encuentra una coincidencia en la cadena de entrada especificada, empezando en la posición inicial indicada en la cadena.

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

Parámetros

input
String

Cadena en la que se va a buscar una coincidencia.

startat
Int32

Posición de carácter en la que se va a iniciar la búsqueda.

Devoluciones

true si la expresión regular encuentra una coincidencia; en caso contrario, false.

Excepciones

input es null.

startat es menor que cero o mayor que la longitud de input.

Se agotó el tiempo de espera. Para más información sobre los tiempos de espera, vea la sección Comentarios.

Ejemplos

En el ejemplo siguiente se muestra el uso del IsMatch(String, Int32) método para determinar si una cadena es un número de parte válido. Busca un número de pieza que sigue a dos puntos (:) carácter en una cadena. El IndexOf(Char) método se usa para determinar la posición del carácter de dos puntos, que luego se pasa al IsMatch(String, Int32) método . La expresión regular supone que el número de pieza tiene un formato específico que consta de tres conjuntos de caracteres separados por guiones. El primer conjunto, que contiene cuatro caracteres, debe constar de un carácter alfanumérico seguido de dos caracteres numéricos seguidos de un carácter alfanumérico. El segundo conjunto, que consta de tres caracteres, debe ser numérico. El tercer conjunto, que consta de cuatro caracteres, debe tener tres caracteres numéricos seguidos de un carácter alfanumérico.

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.

El patrón de la expresión regular es:

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

En la siguiente tabla se muestra cómo se interpreta el patrón de expresión regular.

Modelo Descripción
[a-zA-Z0-9] Coincide con un solo carácter alfabético (a a través z de o A a Z) o un carácter numérico.
\d{2} Coincide con dos caracteres numéricos.
[a-zA-Z0-9] Coincide con un solo carácter alfabético (a a través z de o A a Z) o un carácter numérico.
- Buscar coincidencias con un guion.
\d{3} Coincide exactamente con tres caracteres numéricos.
(-\d{3}){2} Busque un guión seguido de tres caracteres numéricos y coincida con dos apariciones de este patrón.
[a-zA-Z0-9] Coincide con un solo carácter alfabético (a a través z de o A a Z) o un carácter numérico.
$ Finalice la coincidencia al final de la línea.

Comentarios

El IsMatch método se usa normalmente para validar una cadena o para asegurarse de que una cadena se ajusta a un patrón determinado sin recuperar esa cadena para su posterior manipulación. Si desea determinar si una o varias cadenas coinciden con un patrón de expresión regular y, a continuación, recuperarlas para su posterior manipulación, llame al Match método o Matches .

Para obtener más información sobre startat, vea la sección Comentarios de Match(String, Int32).

La RegexMatchTimeoutException excepción se produce si el tiempo de ejecución de la operación coincidente supera el intervalo de tiempo de espera especificado por el Regex.Regex(String, RegexOptions, TimeSpan) constructor. Si no establece un intervalo de tiempo de espera al llamar al constructor, se produce la excepción si la operación supera cualquier valor de tiempo de espera establecido para el dominio de aplicación en el que se crea el Regex objeto. Si no se define ningún tiempo de espera en la llamada del Regex constructor o en las propiedades del dominio de aplicación, o si el valor de tiempo de espera es Regex.InfiniteMatchTimeout, no se produce ninguna excepción.

Consulte también

Se aplica a