Coincidencias resaltadas
Grupos de captura
Cómo usar el probador de Regex
- Introduce tu patrón de expresión regular en el campo Patrón.
- Activa los flags según necesites:
gencuentra todas las coincidencias,iignora mayúsculas/minúsculas,mhace que^y$coincidan con límites de línea,shace que.coincida con saltos de línea. - Pega tu cadena de prueba, las coincidencias se resaltan en tiempo real y los grupos de captura se muestran abajo.
Referencia rápida de sintaxis regex JavaScript
| Token | Significado |
|---|---|
. | Cualquier carácter excepto salto de línea |
\d / \D | Dígito / no dígito |
\w / \W | Carácter de palabra [a-zA-Z0-9_] / no palabra |
\s / \S | Espacio en blanco / no espacio |
^ / $ | Inicio / fin de cadena (o línea con flag m) |
\b | Límite de palabra |
+ / * / ? | Uno o más / cero o más / opcional |
{n,m} | Entre n y m repeticiones |
[abc] | Clase de caracteres |
(abc) | Grupo de captura |
(?:abc) | Grupo sin captura |
a|b | Alternancia (a o b) |
Patrones regex más comunes
- Dirección email:
[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,} - URL:
https?://[^\s/$.?#][^\s]* - Dirección IP:
\b(?:\d{1,3}\.){3}\d{1,3}\b - Fecha (AAAA-MM-DD):
\d{4}-\d{2}-\d{2} - Color hex:
#(?:[0-9a-fA-F]{3}){1,2}\b
Cuantificadores codiciosos vs. perezosos
Por defecto, los cuantificadores (+, *) son codiciosos: coinciden con tanto como sea posible. Añade ? después del cuantificador para hacerlo perezoso (mínimo posible): +?, *?. Ejemplo: <.+?> coincide con etiquetas HTML individuales en lugar de todo desde el primer < hasta el último >.
Diferencias entre motores: JavaScript vs PCRE vs RE2
La sintaxis regex es parecida entre motores pero se comporta de forma diferente en puntos clave. Un patrón que funciona en el navegador puede fallar en PHP, Python o Go:
| Funcionalidad | JavaScript (esta herramienta) | PCRE (PHP, Python, Perl) | RE2 (Go, Rust) |
|---|---|---|---|
Lookbehind (?<=...) | Anchura fija (ES2018+) | Anchura variable | Solo anchura fija |
Referencias hacia atrás | Sí | Sí | No |
Grupos atómicos (?>...) | No | Sí | No |
Clases Unicode \p{L} | Sí (con flag u) | Sí | Sí (por defecto) |
\d coincide con dígitos Unicode | No (solo ASCII sin u) | Sí (PCRE2 por defecto) | No (solo ASCII) |
5 errores frecuentes
- Backtracking catastrófico: Un patrón como
(a+)+ben una larga cadena de 'a' sin 'b' provoca backtracking exponencial y puede bloquear tu aplicación. Evita cuantificadores anidados en patrones superpuestos. Prueba siempre con entrada larga que no coincida. - \d y dígitos Unicode: Sin el flag
u,\dsolo coincide con dígitos ASCII 0-9, no con dígitos arabigo-indios (٠-٩) u otras formas Unicode. Añadeuy usa\p{N}para todos los dígitos Unicode. - ^ y $ sin el flag m: Por defecto,
^y$coinciden con el inicio y el fin de toda la cadena. Para anclas por línea en texto multilínea, añade el flagm. - Cuantificador codicioso que se come demasiado:
<.+>en<b>texto</b>coincide desde el primer<hasta el último>. Usa el perezoso<.+?>para capturar una etiqueta a la vez. - Puntos sin escapar en patrones de dominio: El punto coincide con cualquier carácter.
ejemplo.comtambién coincide conejemploXcom. Escapa los puntos literales:ejemplo\.com.