Cómo: Buscar cadenas mediante expresiones regulares (Guía de programación de C#)

La clase System.Text.RegularExpressions.Regex se puede utilizar para buscar cadenas.Estas búsquedas pueden tener distinta complejidad, desde ser muy sencillas hasta hacer un gran uso de expresiones regulares.A continuación se ofrecen dos ejemplos de búsqueda de cadenas utilizando la clase Regex.Para obtener más información, vea Expresiones regulares de .NET Framework.

Ejemplo

El código siguiente es una aplicación de consola que realiza una búsqueda simple de cadenas sin distinción entre mayúsculas y minúsculas en una matriz.El método estático Regex.IsMatch realiza la búsqueda a partir de la cadena de búsqueda y de una cadena que contiene el modelo de búsqueda.En este caso, se utiliza un tercer argumento para indicar que no se debe distinguir entre mayúsculas y minúsculas.Para obtener más información, vea System.Text.RegularExpressions.RegexOptions.

class TestRegularExpressions
{
    static void Main()
    {
        string[] sentences = 
        {
            "C# code",
            "Chapter 2: Writing Code",
            "Unicode",
            "no match here"
        };

        string sPattern = "code";

        foreach (string s in sentences)
        {
            System.Console.Write("{0,24}", s);

            if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
            {
                System.Console.WriteLine("  (match for '{0}' found)", sPattern);
            }
            else
            {
                System.Console.WriteLine();
            }
        }

        // Keep the console window open in debug mode.
        System.Console.WriteLine("Press any key to exit.");
        System.Console.ReadKey();

    }
}
/* Output:
           C# code  (match for 'code' found)
           Chapter 2: Writing Code  (match for 'code' found)
           Unicode  (match for 'code' found)
           no match here
*/

El código siguiente es una aplicación de consola que utiliza expresiones regulares para validar el formato de cada cadena de una matriz.La validación requiere que cada cadena tenga la forma de un número de teléfono en el que tres grupos de dígitos se separan por guiones. Los dos primeros grupos contienen tres dígitos, y el tercero, cuatro.Para ello, se utiliza la expresión regular ^\\d{3}-\\d{3}-\\d{4}$.Para obtener más información, vea Lenguaje de expresiones regulares - Referencia rápida.

class TestRegularExpressionValidation
{
    static void Main()
    {
        string[] numbers = 
        {
            "123-555-0190", 
            "444-234-22450", 
            "690-555-0178", 
            "146-893-232",
            "146-555-0122",
            "4007-555-0111", 
            "407-555-0111", 
            "407-2-5555", 
        };

        string sPattern = "^\\d{3}-\\d{3}-\\d{4}$";

        foreach (string s in numbers)
        {
            System.Console.Write("{0,14}", s);

            if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern))
            {
                System.Console.WriteLine(" - valid");
            }
            else
            {
                System.Console.WriteLine(" - invalid");
            }
        }

        // Keep the console window open in debug mode.
        System.Console.WriteLine("Press any key to exit.");
        System.Console.ReadKey();
    }
}
/* Output:
      123-555-0190 - valid
     444-234-22450 - invalid
      690-555-0178 - valid
       146-893-232 - invalid
      146-555-0122 - valid
     4007-555-0111 - invalid
      407-555-0111 - valid
        407-2-5555 - invalid
*/

Vea también

Referencia

System.Text.RegularExpressions.Regex

Conceptos

Guía de programación de C#

Lenguaje de expresiones regulares - Referencia rápida

Otros recursos

Cadenas (Guía de programación de C#)

Expresiones regulares de .NET Framework