Chuleta de expresiones regulares
Las expresiones regulares (regex) son patrones para hacer coincidir texto — se usan para buscar y reemplazar, validar y extraer. La sintaxis de abajo es la variante común que comparten JavaScript, Python, PCRE y la mayoría de los motores modernos. Busca cualquier token para saltar a él.
Actualizado 2026-07-06
Clases de caracteres
| Token | Coincide con | Ejemplo |
|---|---|---|
| . | Cualquier carácter excepto un salto de línea | a.c → abc, a7c |
| \d | Cualquier dígito (0–9) | \d\d → 42 |
| \D | Cualquier no dígito | \D → a, % |
| \w | Carácter de palabra (letra, dígito, guion bajo) | \w+ → hello_1 |
| \W | Carácter que no es de palabra | \W → space, ! |
| \s | Espacio en blanco (espacio, tab, salto de línea) | a\sb → a b |
| \S | No espacio en blanco | \S+ → word |
| [abc] | Uno cualquiera de a, b o c | [aeiou] → a vowel |
| [^abc] | Cualquier carácter excepto a, b, c | [^0-9] → non-digit |
| [a-z] | Cualquier carácter del rango | [a-f] → a…f |
Anclas y límites
| Token | Coincide con | Ejemplo |
|---|---|---|
| ^ | Inicio de la cadena (o línea, en modo multilínea) | ^Hi → line starting Hi |
| $ | Fin de la cadena (o línea) | end$ → line ending end |
| \b | Límite de palabra | \bcat\b → the word cat |
| \B | No es un límite de palabra | \Bcat → scatter |
Cuantificadores
| Token | Coincide con | Ejemplo |
|---|---|---|
| * | 0 o más de lo anterior | a* → '', a, aaa |
| + | 1 o más | a+ → a, aaa (not '') |
| ? | 0 o 1 (opcional) | colou?r → color, colour |
| {n} | Exactamente n veces | \d{4} → 2026 |
| {n,} | n o más veces | \d{2,} → 42, 4200 |
| {n,m} | Entre n y m veces | \d{2,4} → 42 to 4200 |
| *? | Perezoso: los menos posibles | <.+?> → shortest match |
Grupos, alternancia y lookarounds
| Token | Coincide con | Ejemplo |
|---|---|---|
| (abc) | Grupo de captura | (ab)+ → abab |
| (?:abc) | Grupo sin captura | (?:ab)+ → group, no capture |
| (?<name>…) | Grupo de captura con nombre | (?<year>\d{4}) |
| a|b | Alternancia — a o b | cat|dog → cat, dog |
| \1 | Retrorreferencia al grupo 1 | (\w)\1 → ll, oo |
| (?=abc) | Lookahead — seguido de abc | \d(?=px) → 5 in 5px |
| (?!abc) | Lookahead negativo — no seguido de | \d(?!px) |
| (?<=abc) | Lookbehind — precedido de abc | (?<=\$)\d+ → 9 in $9 |
| (?<!abc) | Lookbehind negativo | (?<!\$)\d+ |
Flags
| Token | Coincide con | Ejemplo |
|---|---|---|
| g | Global — encuentra todas las coincidencias, no solo la primera | /a/g |
| i | Sin distinción de mayúsculas | /abc/i → ABC |
| m | Multilínea — ^ y $ coinciden con saltos de línea | /^x/m |
| s | Dotall — . también coincide con saltos de línea | /a.b/s |
| u | Modo Unicode | /\u{1F600}/u |
Una nota sobre el escapado
Para hacer coincidir un carácter con significado especial — como . * + ? ( ) [ ] { } ^ $ | \ — pon una barra invertida delante. Por ejemplo, \. coincide con un punto literal y \$ con un signo de dólar literal. Cuando un patrón no coincide con lo que esperas, un carácter especial sin escapar suele ser la causa.
Herramientas relacionadas