¿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 flagspara 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)\blímite de palabra (entre un carácter de palabra\wy uno que no sea\w)\ddígito, equivalente a[0-9]\Dno dígito\wcarácter de palabra, equivalente a[A-Za-z0-9_]\Wcarácter que no es de palabra\sespacio en blanco (espacio, tabulador, salto de línea)\Sno 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
- 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 - URL
https?:\/\/[^\s]+— coincide desde el inicio http/https hasta el primer espacio en blanco - 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 - Fecha ISO
\d{4}-\d{2}-\d{2}— formato tipo 2026-06-28 - 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.