En el artículo anterior (Regex parte 1) tuvimos la primera aproximación a las regex, donde vimos qué son y en que ámbitos nos sirven. Además incorporamos el primer símbolo (*), el cuál nos sirve para indicar la cantidad de repeticiones del caracter anterior. Hoy incorporaremos más símbolos para enriquecer nuestro vocabulario y poder en un futuro hacer expresiones mas complejas. Sin más que agregar, comencemos!
Símbolo Comodín
Siguiendo con la forma de explicar los símbolos nuevos y su aplicación vamos a seguir con la metodología de exponer un ejemplo y seguir los pasos hasta formar una regex.
Para este caso tenemos el siguiente conjunto de palabras:
Y como vemos solo queremos filtrar las palabras marcadas con la flecha verde, ese es nuestro primer paso para armar una regex, entender el requerimiento, hacernos la pregunta ¿Qué queremos incluir? ¿Qué queremos excluir?. Una vez resuelto esto identificamos que patrón se cumple para las palabras que queremos incluir o excluir, como se ve en la siguiente imagen:
Luego de esto, representamos el patrón usando una expresión regular. En este caso en particular revisando el segundo paso vemos que el inicio y el final de las palabras son iguales y solo cambia una letra en medio de estas (a, x, c), entonces cuando siempre hay un caracter pero éste podría ser cualquier caracter utilizamos el símbolo comodín (.). Entonces nuestra regex queda así "foo.bar". Y probando esa regex, por ejemplo en Notepad++ vemos el siguiente resultado:
Combo asterisco comodín
Continuemos con el siguiente ejemplo, en este caso tenemos este listado de palabras:
Analizando el patrón que se repite vemos lo siguiente:
Ahora bien para entender lo que pasa nos damos cuenta de que puede haber cero o mas caracteres y que estos caracteres pueden ser cualquier caracter, es por ello que tenemos que recordar lo que vimos en el artículo anterior, y combinarlo con lo que aprendimos en el punto anterior. Es decir que tendríamos una regex así "foo.*bar". Probándolo con Notepad++ vemos el resultado esperado:
Representar espacios en blanco
Para entender el siguiente símbolo les propongo el siguiente conjunto de palabras:
Como siempre tenemos que evaluar que patrón es el que se repite, por que avanzamos con el siguiente paso:
Vemos que las palabras a incluir comienzan con foo, terminan con bar y tenemos de cero a seis espacios entre medio de ellas. Para representar un espacio en regex utilizamos el siguiente símbolo "\s"
Creo que la parte que nos falta ya tenemos el concepto, si algo se repite de cero a más veces el símbolo que tenemos que utilizar es el asterisco (*). Es decir nuestra regex nos queda así "foo\s*bar". Veamos el resultado en Notepad++:
Hoy hemos integrado tres símbolos nuevos para crear regex que son muy útiles, pero además de eso los hemos combinado para crear regex un poco más complejas, dando así un pantallazo general a lo potente que es esta herramienta. Espero que te haya gustado leer mi artículo y te invito a continuar aprendiendo sobre este tema en próximos artículos, donde incorporaremos mas vocabulario y mejoraremos la forma en la que construimos nuestras expresiones regulares. Muchas gracias.