En la nota anterior sobre expresiones regulares explicamos cómo definir grupos de captura en nuestra expresión regular para enfocarnos en una o más partes de nuestra regex y al mismo tiempo poder ignorar otras que estamos forzados a incluir para asegurarnos de encontrar lo que buscamos. Y con eso cubrimos las tres patas fundacionales de las expresiones regulares: coincidencia de caracteres (con literales y metasecuencias), cuantificadores y grupos de captura. Estas herramientas nos permitirán escribir una cantidad más que digna de regex.
En la nota anterior sobre expresiones regulares vimos cómo expresar cantidades variables de caracteres para una posición en nuestra regex. Y cómo escribir una regex que nos permita capturar palabras dentro de un contexto (caracteres específicos delante y detrás de ella). Pero también nos encontramos con que ese contexto es considerado parte de la coincidencia y que necesitamos evitar eso. Así que ahora aprenderemos cómo solucionarlo.
Grupos de captura Cuando escribimos una regex podemos designar partes de la misma como un grupos de captura.
En la primera nota sobre expresiones regulares vimos cómo podemos escribir una regex que coincida caracteres específicos (o grupos de caracteres) en ciertas posiciones. De manera que es múy fácil crear una regex que encuentra una x seguida de un espacio en blanco, seguida de una y. Pero qué si necesitamos encontrar una a seguida de entre cuatro y seis dígitos, seguidos de una b. Esto es posible y vamos a ver cómo se hace.
¡No es chiste! Los desarrolladores le temen a las expresiones regulares. Y sí, lo entiendo. Se ven horrible. Pero son poderosas.
Y es mucho más difícil leerlas que escribirlas. Lo que no es ideal. Pero al menos te podés beneficiar escribiendo regex aquí y allá. Posiblemente sea buena idea documentarlas con un comentario significativo en el código para tu futuro yo. Aprender a escribir algunas regex simples y, aún así, poderosas no es imposible y estoy escribiendo este artículo para probarlo.
Cualquiera que haya estado trabajando un poco en el área de sistemas u otras tareas fuertemente asistidas por computadora ha tenido la necesidad de renombrar muchos archivos con un criterio único. Y sin una herramienta que facilite el trabajo se trata de un proceso manual, monótono y aburrido.
Cuando tenemos un conjunto de archivos que tienen una parte en común, ya sea prefijo, sufijo o incluso una sección en medio del nombre, es posible que necesitemos cambiar esa parte común en todos ellos.