Mcatorce Suite
← Volver al blog

Expresiones regulares para principiantes: guía práctica

Aprende los bloques básicos de las expresiones regulares - clases de caracteres, cuantificadores, anclas y grupos - con ejemplos pequeños que puedes probar mientras lees.

Prueba la herramienta: Probador de Regex

Una expresión regular, abreviada como regex, es un patrón que describe un conjunto de cadenas de texto. En lugar de buscar la palabra exacta "gato", una regex puede decir "cualquier palabra de cuatro letras que empiece con g y termine con o". Cuando la idea se entiende, las regex se vuelven una de las herramientas más útiles de un desarrollador: validan datos de entrada, extraen información de texto desordenado y reescriben miles de líneas en una sola operación.

La sintaxis parece críptica al principio porque condensa mucho significado en pocos símbolos. La buena noticia es que solo necesitas unos pocos bloques básicos para resolver la mayoría de las tareas reales.

Caracteres literales y el punto

La mayoría de los caracteres de una regex simplemente coinciden consigo mismos. El patrón hola coincide con el texto "hola" y nada más. El primer carácter especial que conviene aprender es el punto, ., que coincide con cualquier carácter excepto un salto de línea. Así, c.t coincide con "cat", "cut" y "c7t".

Si necesitas coincidir con un punto real, escápalo con una barra invertida: \. solo coincide con un punto. El mismo truco sirve para cualquier carácter especial, como \?, \( o \$.

Clases de caracteres

Los corchetes definen un conjunto de caracteres, de los cuales puede coincidir cualquiera. [aeiou] coincide con una vocal y [0-9] con un dígito. Un acento circunflejo al inicio niega el conjunto, así que [^0-9] coincide con cualquier cosa que no sea un dígito.

Como algunos conjuntos son tan comunes, existen atajos:

  • \d coincide con un dígito, igual que [0-9].
  • \w coincide con un carácter de "palabra": letras, dígitos y guion bajo.
  • \s coincide con espacios en blanco como espacios, tabuladores y saltos de línea.
  • \D, \W y \S son los opuestos.

Cuantificadores

Un cuantificador indica cuántas veces puede repetirse el elemento anterior. Los más comunes son:

  • * significa cero o más.
  • + significa una o más.
  • ? significa cero o una, lo que vuelve opcional el elemento.
  • {3} significa exactamente tres, {2,5} entre dos y cinco, y {3,} tres o más.

Así, \d{4} coincide con un número de cuatro dígitos como un año, y colou?r coincide con "color" y "colour".

Por defecto los cuantificadores son codiciosos: coinciden con lo máximo posible. Añadir un signo de interrogación los vuelve perezosos, de modo que <.+?> coincide con una sola etiqueta HTML en lugar de todo lo que hay entre el primer < y el último >.

Anclas y límites

Las anclas coinciden con posiciones, no con caracteres. ^ coincide con el inicio del texto y $ con el final, así que ^\d+$ solo coincide con una cadena formada íntegramente por dígitos. El límite \b coincide con el borde de una palabra, que es como se busca "gato" sin coincidir también con "agotado": \bgato\b.

Grupos y alternancia

Los paréntesis agrupan parte de un patrón y además capturan lo que coincidió dentro de ellos, para leerlo después. La barra vertical | significa "o".

Por ejemplo, (\d{2})/(\d{2})/(\d{4}) coincide con una fecha como 25/12/2025 y captura por separado el día, el mes y el año. En una cadena de reemplazo puedes referirte a ellos como $1, $2 y $3, lo que permite reordenarlos: reemplazar con $3-$2-$1 la convierte en 2025-12-25.

Los motores modernos también admiten grupos con nombre, escritos (?<anio>\d{4}), que hacen mucho más legibles los patrones largos.

Flags

Los flags cambian el comportamiento de todo el patrón. Los que más usarás son g (encontrar todas las coincidencias en lugar de detenerse en la primera), i (ignorar mayúsculas) y m (hacer que ^ y $ coincidan en cada línea y no solo en el texto completo).

Construye los patrones paso a paso

La mejor forma de escribir una regex es empezar muy pequeño y hacerla crecer. Comienza con la pieza más simple que coincida con parte de tu texto, compruébala y añade el siguiente requisito. Un probador en vivo que resalte las coincidencias mientras escribes, como el probador de regex de este sitio, hace ágil este ciclo porque ves de inmediato qué hace cada cambio y qué grupos de captura se llenan.

Prueba tanto texto que debe coincidir como texto que no debe. Un patrón que acepta todo lo esperado pero también acepta basura es un error esperando a ocurrir.

Errores comunes de principiantes

  • Olvidar escapar caracteres especiales como el punto o el signo más.
  • Usar .* en todas partes. Es codicioso y a menudo coincide con mucho más de lo previsto; prefiere una clase específica como [^,]*.
  • Validar formatos complejos, como correos electrónicos, con un patrón enorme. Una comprobación sencilla más un mensaje de confirmación suele ser más fiable.
  • No anclar el patrón. Sin ^ y $, el patrón "\d+" coincide alegremente con los dígitos dentro de "abc123def".

Las expresiones regulares recompensan un poco de práctica. Aprende estas pocas piezas, prueba con frecuencia y mantén tus patrones tan simples como lo permita la tarea.