¿Se te olvidó qué significa \b a mitad de escribir una regex? ¿O escribiste una que parecía correcta pero no coincidía con nada al ejecutarla? Esta guía te da un cheat sheet práctico — organizado en 4 secciones: metacaracteres, cuantificadores, grupos y ejemplos reales, cada uno con una explicación en lenguaje claro. Úsalo con el probador de regex de Piick para consultar y probar sobre la marcha.

Cheat sheet de metacaracteres

Todos los símbolos especiales en regex que no son caracteres literales se llaman metacaracteres. Los 12 más comunes:

  • . cualquier carácter individual (no coincide con saltos de línea por defecto; necesita el flag s para coincidir con ellos)
  • ^ inicio de línea (coincide con el inicio de cada línea en modo multilinea)
  • $ fin de línea (coincide con el final de cada línea en modo multilinea)
  • \b límite de palabra (entre un carácter de palabra \w y uno que no sea \w)
  • \d dígito, equivalente a [0-9]
  • \D no dígito
  • \w carácter de palabra, equivalente a [A-Za-z0-9_]
  • \W carácter que no es de palabra
  • \s espacio en blanco (espacio, tabulador, salto de línea)
  • \S no espacio en blanco
  • [abc] clase de caracteres, coincide con cualquiera de a/b/c
  • [^abc] clase negada, coincide con caracteres que no son a/b/c

Truco de memoria: d es dígito, w es word (palabra), s es space (espacio) — en mayúscula significa “no”.

Cuantificadores: ávidos vs perezosos

Los cuantificadores controlan cuántas veces aparece el elemento anterior:

  • * cero o más veces
  • + una o más veces
  • ? cero o una vez
  • {n} exactamente n veces
  • {n,} al menos n veces
  • {n,m} entre n y m veces

Trampa clave: ávidos por defecto — come todo lo posible. Por ejemplo, ".*" aplicado a "a" y "b" devolverá todo el "a" y "b", no dos segmentos. Añade ? para hacerlo perezoso: ".*?" obtendrá "a" y "b" por separado.

Cuando depures una regex, si sospechas que la coincidencia es demasiado ávida, el primer movimiento es añadir ?.

Agrupación y captura

Los paréntesis () sirven para agrupar y tienen 3 usos:

  • Grupo de captura: Almacena el contenido coincidente, referenciable después con \1
  • Grupo sin captura (?:...): Agrupa sin capturar, ahorra memoria
  • Grupo de captura con nombre (?<name>...): Referencia por nombre, el código es más legible

Un ejemplo real: para hacer coincidir una etiqueta HTML <a href="...">, quieres tanto el nombre de la etiqueta como los atributos. Usa <\/?([a-z]+)([^>]*)> — el primer paréntesis captura el nombre de la etiqueta, el segundo captura los atributos. La versión con captura nombrada es <\/?(?<tag>[a-z]+)(?<attrs>[^>]*)>, mucho más legible.

La agrupación en regex es más compleja de lo que parece — el panel Explain en el probador de regex de Piick desglosa qué hace cada paréntesis, para que no tengas que adivinar.

5 ejemplos reales de regex

  1. Email [A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,} — valida formatos comunes; el RFC 5322 estricto es demasiado largo, así que usa la versión simplificada en la práctica
  2. URL https?:\/\/[^\s]+ — coincide desde el inicio http/https hasta el primer espacio en blanco
  3. IPv4 \b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b — 4 segmentos de 0-255; la validación completa necesita comparaciones numéricas segmento a segmento
  4. Fecha ISO \d{4}-\d{2}-\d{2} — formato tipo 2026-06-28
  5. Slug de URL [a-z0-9]+(?:-[a-z0-9]+)* — letras/dígitos en minúscula con guiones, el formato común de URL de posts de blog

No escribas regex complejas en tu cabeza — pégala en el probador de regex de Piick. Escribe a la izquierda, las coincidencias se resaltan en vivo a la derecha, cambia una línea y ve el efecto al instante. Eso es 10 veces más rápido que recargar la página repetidamente.


Abre ahora el probador de regex de Piick, pega algo de texto y prueba una regex que nunca hayas ejecutado.