tomai
Entrar

Guía de Regex: patrones que realmente vas a reutilizar

Las expresiones regulares comprimen todo un lenguaje de búsqueda en una sola línea, por eso parecen crípticas hasta que las piezas encajan. Esta guía cubre el 20 por ciento de la sintaxis que resuelve el 80 por ciento de los trabajos: encontrar correos en texto pegado, validar entradas, dividir logs y renombrar archivos en masa.

1. Literales, punto y clases de caracteres

La mayoría de los caracteres se representan a sí mismos; el punto representa cualquier carácter excepto un salto de línea. Los corchetes definen un conjunto — [0-9] acepta cualquier dígito, [^0-9] acepta todo menos un dígito — mientras que atajos como \d, \w y \s cubren dígitos, caracteres de palabra y espacios. Prefiere una clase explícita a un punto aislado siempre que sepas lo que corresponde ahí.

2. Anclas y cuantificadores

^ ancla al inicio y $ al final, así que ^hi solo encuentra cadenas que empiezan por hi. Añade + para una vez o más, * para cero veces o más y ? para opcional; un ? final tras cualquiera de ellos cambia a coincidencia perezosa, que se detiene en la primera oportunidad en vez de la última. Voraz contra perezoso es la fuente más común de resultados sorprendentes.

3. Grupos, alternancias y lookarounds

Los paréntesis agrupan y capturan — (cat|dog)s? encuentra cat, cats, dog o dogs — mientras que (?:…) agrupa sin capturar. Los lookaheads como \d+(?=px) comprueban lo que sigue sin consumirlo, así puedes exigir un sufijo y dejarlo en su sitio para la siguiente coincidencia. Los grupos con nombre documentan la intención para quien lea el patrón después.

4. Los flags lo cambian todo

Las letras tras la barra final ajustan el motor: g encuentra todas las coincidencias en vez de la primera, i ignora mayúsculas, m hace que las anclas actúen por línea, s deja que el punto cruce saltos de línea, u activa Unicode completo e y fija la coincidencia a una posición. Un juego de flags equivocado es una razón frecuente por la que un patrón de aspecto correcto no devuelve nada.

5. La trampa del backtracking

Cuantificadores anidados como (a+)+ sobre una cadena larga que no coincide pueden lanzar el motor por un número exponencial de rutas y congelar la pestaña. Mantén las repeticiones planas, prefiere reescrituras posesivas o grupos atómicos donde se admitan, y prueba los patrones sospechosos contra entradas hostiles antes de publicar — pégalos en nuestro probador de regex, que resalta cada coincidencia y cada grupo en vivo en tu navegador.