Qué hace un tester de expresiones regulares
Una expresión regular, o regex, es un pequeño lenguaje de patrones para buscar texto. \d{4} significa “cuatro dígitos seguidos”. [\w.+-]+@ significa “uno o más caracteres de palabra, puntos, signos más o guiones, seguidos de una @”. Las regex se usan para buscar y reemplazar en editores de código, validar formularios, analizar registros y limpiar datos.
Es fácil equivocarse un poco al escribir un patrón. Un tester te deja probar expresiones regulares con un texto de ejemplo real y ver exactamente qué capturan antes de ponerlas en un script. Este muestra las coincidencias mientras escribes, lista cada grupo de captura y te enseña una vista previa del reemplazo.
Cómo usar el tester de regex
- Escribe tu patrón en Expresión regular, sin las barras. La herramienta las muestra por ti, con los flags activos después de la barra de cierre.
- Activa o desactiva los flags con los botones g, i, m, s, u e y.
- Pega o escribe un texto de ejemplo en Texto de prueba.
- Mira el resultado en Coincidencias. Cada coincidencia aparece resaltada y el contador indica cuántas se encontraron.
- Revisa Detalles de coincidencias y grupos para ver la posición de cada coincidencia y el texto que captura cada grupo.
- Para probar un buscar y reemplazar, escribe en Reemplazar con. El texto modificado aparece en Resultado, listo para copiar.
¿No sabes por dónde empezar? Elige una opción en Patrones comunes. Hay patrones para direcciones de correo, direcciones web, fechas, direcciones IPv4, colores hexadecimales, números de teléfono, números y espacios dobles.
Los flags
| Flag | Nombre | Qué cambia |
|---|---|---|
| g | global | Encuentra todas las coincidencias, no solo la primera |
| i | ignore case (ignorar mayúsculas y minúsculas) | hello también coincide con Hello y HELLO |
| m | multiline (multilínea) | ^ y $ coinciden al principio y al final de cada línea |
| s | dot all | . también coincide con un salto de línea |
| u | unicode | Lee un emoji como un solo carácter y permite las clases \p{...} |
| y | sticky | Cada coincidencia debe empezar justo donde terminó la anterior |
Ejemplos
Estos resultados salen de ejecutar los patrones en esta herramienta.
| Patrón | Flags | Texto | Coincidencias |
|---|---|---|---|
\d+ |
ninguno | a1 b22 c333 |
1 |
\d+ |
g | a1 b22 c333 |
1, 22, 333 |
hello |
gi | Hello hello HELLO |
Hello, hello, HELLO |
^\w+ |
gm | dos líneas: one two y three four |
one, three |
a.b |
g | a, salto de línea, b |
ninguna |
a.b |
gs | a, salto de línea, b |
una |
La página se carga con un ejemplo de fechas. El patrón (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) encuentra tres fechas en el texto de ejemplo: 2026-10-31, 2024-01-15 y 2026-11-02. El reemplazo $<day>/$<month>/$<year> convierte la primera en 31/10/2026, el orden día/mes/año que se usa en español.
El reemplazo también es útil para limpiar texto. El patrón \s{2,} con un solo espacio como reemplazo convierte too many spaces en too many spaces.
Ojo con la ñ y las tildes. En JavaScript, \w solo equivale a [A-Za-z0-9_], también con el flag u. En el texto El año de la canción, el patrón \w+ con g encuentra El, a, o, de, la, canci y n: corta las palabras en la ñ y en la ó. Para palabras en español, usa \p{L}+ con los flags g y u, que encuentra El, año, de, la y canción, o una clase explícita como [a-záéíóúüñ]+ con los flags g e i. El flag i sí trata la ñ y la Ñ, o la á y la Á, como la misma letra. Por el mismo motivo, \b no considera la ñ ni las vocales con tilde como parte de una palabra. En Python 3 es distinto: allí \w sí incluye la ñ y las letras con tilde.
Cómo funciona
El tester crea un RegExp de JavaScript con tu patrón y tus flags, y lo ejecuta sobre el texto de prueba. Con el flag g sigue buscando hasta el final. También salta las coincidencias vacías, para que un patrón como x* no se quede en un bucle infinito.
El texto se escapa antes de resaltarlo. Cualquier HTML o script que haya en tu texto de ejemplo se muestra como caracteres normales y nunca se ejecuta.
La búsqueda se hace en un Web Worker, un hilo en segundo plano. Si un patrón tarda más de 1 segundo, el worker se detiene y se inicia uno nuevo. Ves un mensaje en lugar de una pestaña congelada.
Si un patrón no es válido, verás el mensaje de error del navegador, normalmente en inglés. Por ejemplo, un ( suelto da “Unterminated group” (grupo sin cerrar).
Consejos y límites
- Cuidado con las repeticiones anidadas. Patrones como
(a+)+$o(\w+\s?)*$pueden tardar muchísimo en un texto que casi coincide. Es lo que se llama backtracking catastrófico. Haz que cada parte coincida con algo concreto y evita una repetición dentro de otra. - Escapa los caracteres especiales. Para buscar un punto real, escribe
\.. Lo mismo vale para? * + ( ) [ ] { } ^ $ |y para la propia barra invertida. - Ancla los patrones de validación. Para un campo de formulario, rodea el patrón con
^y$para que tenga que coincidir el valor completo y no solo una parte. - Una regex no es un analizador completo. Sirve para detectar correos o fechas en un texto. No es una forma fiable de analizar HTML ni de comprobar que una dirección de correo existe de verdad.
- Los resultados muy grandes se limitan. La herramienta lista hasta 5.000 coincidencias y muestra las 300 primeras filas en la tabla de detalles.
Otras formas de probar una regex
En la línea de comandos, grep -oE muestra cada coincidencia en su propia línea:
echo 'Call 555-010-9999 on 2026-10-31' | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}'
Eso muestra 2026-10-31. En Python, re.findall(r'\d{4}-\d{2}-\d{2}', 'from 2026-10-31 to 2024-01-15') devuelve ['2026-10-31', '2024-01-15']. En JavaScript, usa text.match(/pattern/g), o text.matchAll() si necesitas los grupos.
Herramientas relacionadas
Para preparar títulos para direcciones web, usa el generador de slugs. Para que un texto sea seguro dentro de un enlace, usa la herramienta para codificar y decodificar URL.