Guía rápida de expresiones regulares (regex)

La sintaxis de regex en una página: clases, anclas, cuantificadores, grupos, anticipación, banderas y patrones listos para usar, con todos los ejemplos probados.

Última revisión:

AdSense Placeholder
Slot: header_reference_page
En esta página

Una expresión regular (regex) describe un patrón de texto. Sirve para buscar, validar o reemplazar texto en editores, herramientas de línea de comandos y todos los lenguajes de programación. Pruebe cualquier patrón en vivo en el Probador de Regex. Cada ejemplo de abajo se ejecutó en JavaScript y Python y produce el resultado indicado.

Caracteres y clases

Patrón Significado Ejemplo
. cualquier carácter salvo el salto de línea a-c → a, -, c
\d+ uno o más dígitos (\d es un dígito, \D no) a12b345 → 12, 345
\w+ caracteres de palabra: letras, dígitos y guion bajo (\W es lo contrario) hi_there! ok → hi_there, ok
a\sb espacio en blanco: espacio, tabulador, salto de línea (\S es lo contrario) a b ab → a b
gr[ae]y un carácter del conjunto gray grey groy → gray, grey
[^0-9]+ cualquier cosa fuera del conjunto ab12cd3 → ab, cd
[a-f0-9]+ rangos dentro de un conjunto ff09 xyz 1a → ff09, 1a

Anclas y límites

Patrón Significado Ejemplo
^\d+$ ^ es el inicio y $ el final: debe coincidir todo el texto 12345 → 12345
^\d+$ 12a45 → sin coincidencia
\bcat\b límite de palabra: solo coincide con cat como palabra completa cat concat cat. → cat, cat

Cuantificadores

Patrón Significado Ejemplo
ab* * significa cero o más del elemento anterior a ab abbb → a, ab, abbb
ab+ + significa uno o más a ab abbb → ab, abbb
colou?r ? significa opcional (cero o uno) color colour → color, colour
\d{3} {n} significa exactamente n veces 12 123 12345 → 123, 123
\d{2,3} {n,m} significa entre n y m veces 1 12 123 1234 → 12, 123, 123
<.+> voraz (greedy): toma todo lo que puede <a><b> → <a><b>
<.+?> perezoso (lazy): añada ? para tomar lo mínimo <a><b> → <a>, <b>

Grupos, alternancia y anticipación

Patrón Significado Ejemplo
cat|dog | significa uno u otro lado hotdog cat → dog, cat
(?:ab)+ un grupo que no captura, para poder aplicarle un cuantificador ababab ab → ababab, ab
(\w)\1 \1 repite lo que capturó el grupo 1 hello book → ll, oo
(?<year>\d{4})-\d{2} un grupo con nombre, (?<nombre>...) (JavaScript y PCRE; Python escribe (?P<nombre>...)) on 2026-10-03 → 2026-10
\d+(?=%) anticipación (lookahead): seguido de %, sin consumirlo 50% 20 30% → 50, 30
foo(?!bar) anticipación negativa: no seguido de bar foobar foobaz → foo
(?<=\$)\d+ retrospección (lookbehind): precedido de $, sin consumirlo cost $15 or 20 → 15

Banderas (flags)

Bandera Nombre Efecto
i Ignorar mayúsculas cat también coincide con Cat y CAT
g Global Encuentra todas las coincidencias, no solo la primera
m Multilínea ^ y $ coinciden en cada línea, no solo en el texto completo
s El punto incluye saltos de línea . también coincide con un salto de línea
u Unicode Trata el patrón como Unicode y permite las clases \p{...}

Caracteres que hay que escapar

Tienen un significado especial, así que ponga una barra invertida delante para que coincidan literalmente: . ^ $ * + ? ( ) [ ] { } | \. Por ejemplo, 3\.14 coincide con 3.14 pero no con 3x14.

Patrones prácticos

Para Patrón Coincide con
Entero ^-?\d+$ 42, -7
Número decimal ^-?\d+(\.\d+)?$ 3.14, -2, 10
Color hexadecimal ^#(?:[0-9a-fA-F]{3}){1,2}$ #fff, #a1B2c3
Correo (comprobación aproximada) ^[^\s@]+@[^\s@]+\.[^\s@]+$ [email protected], [email protected]
Dirección IPv4 ^(?:(?:25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|1?\d?\d)$ 192.168.1.1, 0.0.0.0, 255.255.255.255
Forma de fecha ISO ^\d{4}-\d{2}-\d{2}$ 2026-10-03
Palabra repetida \b(\w+)\s+\1\b the the, is is

Estos patrones comprueban la forma del texto. Un correo real, por ejemplo, no se puede validar del todo con una regex: envíe un mensaje de confirmación.

Trampas habituales

  • La coincidencia voraz toma todo lo posible; use ? tras un cuantificador para hacerla perezosa.
  • Retroceso catastrófico. Cuantificadores anidados como (a+)+ pueden tardar un tiempo exponencial con ciertas entradas. Mantenga los patrones simples cuando se ejecutan sobre texto no fiable.
  • Los dialectos difieren. JavaScript, Python, PCRE (PHP y muchas herramientas) y POSIX admiten una sintaxis algo distinta, sobre todo en grupos con nombre, retrospección y Unicode.
  • No analice HTML con regex. Use un analizador de verdad para estructuras anidadas.

Pruebe estas herramientas

Véase también

  • Glosario Expresión regular (regex)
    Una expresión regular (regex) es un patrón escrito en una sintaxis compacta que describe un conjunto de cadenas, usado para buscar.
AdSense Placeholder
Slot: footer_leaderboard