Blog alskare

.Net y lo que surja

Buscar cadenas con Regex ( C#).

Publicado por alskare en 27/07/2009

No será la primera vez que me encuentro con algún tipo de rutina en la que tengo que encontrar si existe o no alguna palabra (o símbolo) dentro de una cadena. Algo así como : ¿Se encuentra la cadena “la” dentro del familiar “Hola Mundo”?. Si el lector es tan torpe como yo, seguro que habrá creado alguna que otra rutina que, aunque seguro que ha servido para salir del paso, nos ha dejado algún que otro mal sabor de boca por el rendimiento, sobre todo, cuando han cambiado los patrones de búsqueda.

Una simple combinación de instrucciones en las que interviene un poco de Expresiones Regulares nos ayuda enormemente en la tarea y nos permite averiguar, en el ejemplo siguiente si las cadenas de PatronBusqueda se encuentran en las diferentes frases que se muestran por la Console.

 

// Ejecución de las pruebas.
public static void Main()
{
    // Patrón de búsqueda, palabras que queremos saber si existen
    string PatronBusqueda = "la|UNO|DOS|TRES|CUATRO|CINCO|SEIS|SIETE|OCHO|NUEVE|DIEZ";

    // Instancia de la clase Regex. Se indica el patrón de búsqueda con las opciones 
    Regex regex = new Regex(PatronBusqueda,
       RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);

    // Las siguientes líneas muestran la frase y si se han encontrado o no las cadenas del patrón
    Console.WriteLine("{0} ---> {1}", "Hola Mundo", regex.Match("Hola Mundo").Success);
    Console.WriteLine("{0} ---> {1}", "Prueba número uno", regex.Match("Prueba número uno").Success);
    Console.WriteLine("{0} ---> {1}", "Prueba número CINCO", regex.Match("Prueba número CINCO").Success);
    Console.WriteLine("{0} ---> {1}", "Prueba número SiEtE", regex.Match("Prueba número SiEtE").Success);
    Console.WriteLine("{0} ---> {1}", "Va a ser que no", regex.Match("Va a ser que no").Success);


    Console.ReadKey();
}

 

Supongo que a cualquier persona habituada a los Regex, este pequeño ejemplo le parecerá una auténtica tontería, pero os aseguro que, para mí, el descubrimiento de los Regex (por lo menos para estas cosas sencillitas, que no me atrevo con más) ha sido “uno de los grandes inventos del siglo”.

About these ads

Lo siento, el formulario de comentarios está cerrado en este momento.

 
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: