Probador de expresiones regulares
Escribe un patrón y ve cada coincidencia resaltada en contexto: sin botones y con el motor RegExp de JavaScript del propio navegador.
Resultado de la coincidencia
Cómo se usa
- Escribe el patrón sin las barras y activa los flags que necesites: las coincidencias se actualizan mientras escribes, sin ningún botón que pulsar.
- Pega el texto de prueba. Cada coincidencia se resalta en el panel de resultados y se lista con su posición, su texto y sus grupos de captura.
- Copia todos los valores coincidentes a la vez o descárgalos como archivo de texto, una coincidencia por línea.
Ejemplo
Patrón y texto
(\w+)@(\w+)\.(\w+) Escribe a ana@example.com o a luis@example.org para más detalles.
Coincidencias
Coincidencias: 2 #1 [10–25] ana@example.com 1: ana 2: example 3: com #2 [30–45] luis@example.org 1: luis 2: example 3: org
La primera línea es el patrón (no hacen falta barras) y el resto es el texto de prueba. Los rangos son desplazamientos en el texto basados en 0 y con el final excluido: los mismos números que JavaScript indica en match.index. La búsqueda global está siempre activa, así que se encuentran todas las apariciones aunque no haya un interruptor g.
Reglas, límites y problemas conocidos
- El motor es el RegExp de JavaScript del propio navegador: sin sabores PCRE, Python, Go ni RE2, y sin selector de sabor. No se admiten \A, \z ni flags en línea como (?i).
- La búsqueda global está siempre activa; los únicos flags son i, m, s y u. No se ofrecen y (sticky), d (índices) ni v (conjuntos Unicode).
- Las barras /…/ son decorativas: una / dentro del patrón no necesita escape aquí, a diferencia de un literal de JavaScript. La indicación de flags junto a ellas es la cadena exacta que puedes reutilizar en tu código.
- Un error de sintaxis muestra el mensaje del propio navegador (en inglés) después de un prefijo localizado; el texto varía entre navegadores.
- Un texto de prueba vacío no produce resultado: no hay línea que probar, así que patrones como ^$ no se pueden verificar aquí.
- Se recogen hasta 2000 coincidencias (el recuento pasa a leerse 2000+) y la lista muestra las primeras 200. Ambos límites se avisan, no se truncan en silencio.
- El texto de más de 100.000 caracteres se sigue actualizando mientras escribes, con una espera algo mayor antes de mostrar el resultado.
- El retroceso catastrófico puede bloquear la pestaña: una regex de JavaScript se ejecuta de forma síncrona y no se puede interrumpir, así que no hay tiempo de espera. No pegues patrones que no sean de confianza ni textos enormes.
- \w, \b y \d son solo ASCII incluso con u: para letras chinas o árabes usa \p{L} y el flag u. Sin u, \p{L} no es un error: se degrada en silencio a una coincidencia literal.
- i usa el plegado simple de mayúsculas Unicode, no las reglas regionales: la İ y la i turcas no coinciden entre sí, y ß no se pliega a SS.
- Los rangos son desplazamientos UTF-16 basados en 0 y con el final excluido, así que un emoji cuenta como dos. Un grupo que no ha participado se muestra como —; un grupo que ha coincidido con una cadena vacía se muestra vacío.
- Las coincidencias de longitud cero (\b, a*, (?=x)) se muestran con una marca fina y su rango se lee n–n.
- Copiar y descargar listan solo los valores coincidentes, uno por línea, sin números, rangos ni grupos. Por eso una coincidencia que contiene saltos de línea ocupa varias líneas.
- Sin vista previa de sustitución, sin generador de código, sin enlace permanente y sin patrones guardados: el patrón nunca sale de la caja de entrada ni entra en la URL.
Herramientas relacionadas
Una vez que el patrón funciona, estos son los siguientes pasos habituales.