developer reference

Regex cheat sheet

Referencia práctica para usar Regex a diario con búsqueda, copia rápida e impresión PDF.

Ir a comandos
35
comandos
7
categorías
0
dependencias

Tester regex live

JS RegExp

La prueba usa JavaScript RegExp con búsqueda global (g). Usa (?<name>...) para grupos con nombre. La sintaxis y las opciones de Python re se ejecutan en Python, no en esta prueba. Límites: 100.000 caracteres de texto, 4.000 de patrón y 1.000 coincidencias; se detienen los patrones lentos.

Output match

35 comandos visibles

Anclas

4 comandos
^

Inicio de linea o cadena

Anchorseguro
Ejemplo práctico
^Hello  # coincide con "Hello world" pero no con "say Hello"
$

Fin de linea o cadena

Anchorseguro
Ejemplo práctico
world$  # coincide con "Hello world" pero no con "world class"
\b

Limite de palabra: borde palabra/no palabra

Anchorseguro
Ejemplo práctico
\bcat\b  # "cat" pero no "catch" ni "concat"
\B

Limite de no-palabra

Anchorseguro
Ejemplo práctico
\Bcat\B  # "concatenate" pero no " cat "

Cuantificadores

5 comandos
*

0 o mas veces (greedy)

Quantificatoriseguro
Ejemplo práctico
ab*c  # "ac", "abc", "abbc", "abbbc"…
+

1 o mas veces (greedy)

Quantificatoriseguro
Ejemplo práctico
ab+c  # "abc", "abbc" pero NO "ac"
?

0 o 1 vez (opcional)

Quantificatoriseguro
Ejemplo práctico
colou?r  # "color" y "colour"
{n,m}

Entre n y m veces

Quantificatoriseguro
Ejemplo práctico
\d{2,4}  # 2, 3 o 4 dígitos
\d{3}    # exactamente 3 dígitos
*? +? ??

Versiones lazy (no greedy)

Quantificatoriseguro
Ejemplo práctico
# entrada: "<b>bold</b>"
<.+>   # codicioso: "<b>bold</b>"
<.+?>  # no codicioso: "<b>" y luego "</b>"

Clases

5 comandos
[abc]

Clase de caracteres: uno de los caracteres listados

Classiseguro
Ejemplo práctico
[aeiou]  # cualquier vocal
[a-z]  # a-z en minúsculas
[A-Za-z0-9]
[^abc]

Negacion: cualquier caracter excepto los listados

Classiseguro
Ejemplo práctico
[^0-9]  # no dígitos
\d \w \s

Atajos: \d digito, \w palabra, \s espacio

Classiseguro
Ejemplo práctico
\d  # [0-9]
\w  # [a-zA-Z0-9_]
\s  # [ \t\n\r]
\D \W \S

Atajos negados

Classiseguro
Ejemplo práctico
\D  # no es un dígito
\W  # no es un carácter de palabra
\S  # no es un espacio
.

Cualquier carácter excepto finales de línea; la opción s (Python re.S) incluye saltos de línea

Classiseguro
Ejemplo práctico
a.b  # "aXb", "a b", "a1b"…

Gruppi

6 comandos
(...)

Grupo de captura: captura el match

Gruppiseguro
Ejemplo práctico
(\d{4})-(\d{2})-(\d{2})
# coincide con "2024-01-15", group(1)="2024"
(?:...)

Grupo sin captura: agrupa sin capturar

Gruppiseguro
Ejemplo práctico
(?:Mr|Mrs|Ms)\.\s\w+
# agrupa alternativas sin capturarlas
(?<name>...)

Grupo con nombre: captura con nombre

Gruppiseguro
Ejemplo práctico
JavaScript: (?<year>\d{4})-(?<month>\d{2})
match.groups.year

Python: (?P<year>\d{4})-(?P<month>\d{2})
m.group("year")
a|b

Alternativa: a o b

Gruppiseguro
Ejemplo práctico
cat|dog  # "cat" o "dog"
(https?|ftp)://
(?=...) (?!...)

Lookahead positivo y negativo

Gruppiseguro
Ejemplo práctico
\d+(?= euro)  # número seguido de " euro" (sin capturar " euro")
\d+(?! euro)  # número NO seguido de " euro"
(?<=...) (?<!...)

Lookbehind positivo y negativo

Gruppiseguro
Ejemplo práctico
(?<=\$)\d+  # número precedido por "$"

Python re

6 comandos
re.search (pattern, string)

Encuentra la primera ocurrencia en cualquier posicion

Python reseguro
Ejemplo práctico
import re
m = re.search(r"\d+", "abc 123 def")
if m:
    print(m.group())  # "123"
re.match (pattern, string)

Coincide solo al inicio de la cadena

Python reseguro
Ejemplo práctico
re.match(r"\d+", "123abc")  # coincidencia
re.match(r"\d+", "abc123")  # None
re.findall (pattern, string)

Devuelve una lista de todos los matches

Python reseguro
Ejemplo práctico
re.findall(r"\d+", "1 apple, 2 bananas, 3 pears")
# → ["1", "2", "3"]
re.sub (pattern, repl, string)

Reemplaza matches por repl

Python reseguro
Ejemplo práctico
re.sub(r"\s+", " ", "too  many   spaces")
# → "too many spaces"
re.sub(r"(\w+)", r"[\1]", "hello world")
# → "[hello] [world]" (referencia inversa)
re.split (pattern, string)

Divide una cadena por matches del patron

Python reseguro
Ejemplo práctico
re.split(r"[,;\s]+", "a, b; c  d")
# → ["a", "b", "c", "d"]
re.compile (pattern, flags)

Precompila un patron para uso repetido

Python reseguro
Ejemplo práctico
EMAIL = re.compile(r"[\w.+-]+@[\w-]+\.[\w.]+")
for line in lines:
    if EMAIL.search(line): ...

Flag

4 comandos
re.IGNORECASE

Matching sin distinguir mayusculas

Flagseguro
Ejemplo práctico
re.findall(r"hello", text, re.I)
re.compile(r"hello", re.IGNORECASE)
re.MULTILINE

^ y $ coinciden con inicio/fin de cada linea

Flagseguro
Ejemplo práctico
re.findall(r"^\w+", text, re.M)
re.DOTALL

El punto (.) tambien coincide con newline

Flagseguro
Ejemplo práctico
re.search(r"<div>.+?</div>", html, re.S)
re.VERBOSE

Permite comentarios en el patron (re.X)

Flagseguro
Ejemplo práctico
pattern = re.compile(r"""
    \d{4}  # año
    -
    \d{2}  # mes
""", re.X)

Pattern pronti

5 comandos

Email

[\w.+-]+@[\w-]+\.[a-zA-Z]{2,}

Patrón simplificado de correo; no es un validador completo

Pattern prontiseguro
Ejemplo práctico
[\w.+-]+@[\w-]+\.[a-zA-Z]{2,}

URL

https?://[\w/:%#$&?()~.=+\-]+

Patrón simplificado de URL HTTP/HTTPS; no es un analizador completo

Pattern prontiseguro
Ejemplo práctico
https?://[\w/:%#$&?()~.=+\-]+

IPv4

\b(?:\d{1,3}\.){3}\d{1,3}\b

Patrón con forma IPv4; no valida los rangos de octetos (0–255)

Pattern prontiseguro
Ejemplo práctico
\b(?:\d{1,3}\.){3}\d{1,3}\b

Data ISO

\b\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])\b

Patrón con forma YYYY-MM-DD; no valida las fechas del calendario

Pattern prontiseguro
Ejemplo práctico
\b\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])\b

Telefono italiano

(?:\+39)?[\s-]?(?:0\d{1,4}|3\d{2})[\s-]?\d{6,8}

Patrón simplificado de teléfono italiano; no confirma que sea válido o asignado

Pattern prontiseguro
Ejemplo práctico
(?:\+39)?[\s-]?(?:0\d{1,4}|3\d{2})[\s-]?\d{6,8}

Cómo usar esta cheat sheet de Regex

¿Puedo probar aquí expresiones regulares de Python?

La prueba usa JavaScript RegExp. La sintaxis de Python como (?P<name>...) y re.VERBOSE debe probarse en Python. Los patrones ilustran formatos, no una validación completa.

¿Puedo imprimir la hoja en PDF?

Usa Imprimir PDF. La versión imprimible incluye todos los comandos y ejemplos, incluso en secciones ocultas por la búsqueda.

¿Puedo usarla en local?

Sí. Sirve los archivos estáticos con un servidor HTTP local. Búsqueda, filtros y copia funcionan en el navegador; la prueba Regex necesita HTTP con workers permitidos.