Probador y visualizador de expresiones regulares en línea gratuito. Escriba una expresión regular de JavaScript y véala dibujada como un diagrama interactivo, explicado en inglés sencillo y combinado en vivo con grupos de captura codificados por colores. Reemplazar, extraer, realizar pruebas unitarias y exportar código, sin necesidad de registrarse.
Un probador de expresiones regulares que le muestra lo que significa su patrón
Pruebe, depure y comprenda expresiones regulares en un solo lugar. Escriba un patrón y se dibujará instantáneamente como un diagrama ferroviario interactivo, se explicará token por token en inglés sencillo y se ejecutará en vivo con su texto con cada coincidencia y grupo de captura resaltado con color. Reemplace, extraiga, divida, escriba pruebas unitarias, exporte código de trabajo para 9 idiomas y reciba advertencias sobre retrocesos catastróficos, todo dentro de su navegador.
La mayoría de los probadores de expresiones regulares solo le dicen si un patrón coincide. Este también te muestra por qué. A medida que escribe, la expresión regular se analiza y se dibuja como un diagrama de ferrocarril: un mapa de izquierda a derecha donde cada ruta a través del diagrama es una cadena que el patrón puede coincidir. Pase el cursor sobre cualquier cuadro y los caracteres coincidentes se iluminarán en su patrón, y una descripción en inglés sencillo le indicará exactamente qué hace esa pieza. Mueva el cursor de texto a través del patrón y el diagrama lo sigue. Debajo, su patrón se ejecuta en vivo con su propio texto de prueba con cada coincidencia resaltada y cada grupo de captura en su propio color, para que pueda ver qué coincidió y por qué al mismo tiempo.
Características
Diagrama ferroviario interactivo de cualquier patrón: coloque el cursor sobre un cuadro para iluminarlo en la expresión regular
Explicación en inglés sencillo de cada token, grupo, cuantificador y análisis
Resaltado de partidos en vivo con grupos de captura codificados por colores dentro del texto
Haga clic en una coincidencia para ver lo que capturó cada grupo, directamente en el diagrama
Editor de patrones de color de sintaxis que sigue el cursor
Todos los indicadores de JavaScript: g, i, m, s, u, v (conjuntos Unicode) e y
Reemplazar con $1, $<nombre>, $& y una vista previa resaltada de antes/después
Extraiga coincidencias a una lista con plantillas, exportación única/clasificada, CSV y JSON
Dividir texto por una expresión regular y pruebas unitarias que deben (o no) coincidir
Exportación de código para JavaScript, TypeScript, Python, PHP, Java, C#, Go, Rust y Ruby
Tabla de compatibilidad: vea qué funciones fallan en Python, PCRE, Go o Rust
Guardia ReDoS: ejecuta un trabajador, detiene patrones descontrolados y marca cuantificadores anidados
Biblioteca de 40 patrones probados más un generador de generación a partir de ejemplos
Hoja de referencia en la que se puede hacer clic, patrones guardados y enlaces para compartir, 100% en su navegador
Cómo utilizar Probador y visualizador de expresiones regulares
1
Introduce un patrón
Escriba una expresión regular (pegar /pattern/flags la divide automáticamente), elija una de la biblioteca de patrones o genere una a partir de ejemplos en la pestaña Construir.
2
Alternar banderas
Haga clic en g, i, m, s, u, v o y para cambiar el comportamiento de coincidencia; coloque una bandera para ver qué hace.
3
Lea el diagrama visual
Pase el cursor sobre cualquier cuadro del diagrama del ferrocarril o haga clic en él, o cambie a Explicación para ver qué significa cada parte del patrón.
4
Pruebe con su texto
Pegue el texto en la cadena de prueba; Destacados partidos y capturas de grupos en directo. Haga clic en una coincidencia para ver el valor de cada grupo en el diagrama.
5
Reemplazar, extraer o probar
Utilice las pruebas Reemplazar, Extraer, Dividir y Unitarias para comprobar que el patrón hace exactamente lo que necesita.
6
Exportar o compartir
Copie el código de trabajo para su idioma desde la pestaña Código, descargue el diagrama como SVG/PNG o copie un enlace para compartir.
Casos de uso comunes
Comprenda una expresión regular compleja que heredó, un cuadro de diagrama a la vez
Depure por qué una expresión regular no coincide con sus datos
Valide un patrón de correo electrónico, URL, teléfono o contraseña antes de enviarlo
Extraiga campos de líneas de registro con grupos de captura con nombre
Cree y obtenga una vista previa de un buscar y reemplazar con referencias de grupo
Portar una expresión regular de JavaScript a Python, PHP, Go o Java
Verifique un patrón de retroceso catastrófico (ReDoS)
Enseña o aprende expresiones regulares con una explicación visual.
guía detallada
Cómo leer un diagrama de ferrocarril de expresiones regulares
Los diagramas de ferrocarril (sintaxis) se leen como las vías de un tren: comienzan en el punto de la izquierda, siguen cualquier ruta hasta el final y los caracteres que atraviesan forman una cadena que acepta la expresión regular. Las ramas significan alternativas, una pista que vuelve por debajo significa repetición y una pista que pasa por alto un cuadro de arriba significa que esa parte es opcional. Los marcos de colores son grupos de captura (se usan los mismos colores en las coincidencias resaltadas), los marcos discontinuos son elementos de búsqueda que verifican sin consumir texto y los cuadros en forma de píldora son anclajes que coinciden con una posición en lugar de un carácter. Haga clic en una coincidencia en los resultados y cada cuadro de grupo mostrará el valor exacto que capturó, o "no hay coincidencia" si se omitió ese grupo.
en el diagrama
Sintaxis de expresiones regulares
Significado
Cuadro con texto citado
abc\. \norte
Estos personajes exactos
Cuadro que enumera 'uno de:'
[a-z0-9_]
Cualquier personaje del conjunto.
Cuadro que indica 'ninguno de:'
[^\s@]
Cualquier carácter que NO esté en el conjunto
Cuadro verde (dígito, carácter de palabra…)
\d \w \s .
Una taquigrafía de clase de personaje
Caja en forma de pastilla
^ $ \b
Un ancla: una posición, no un personaje
La pista se divide en ramas
gato|perro
Cualquiera de las alternativas
Vuelva a colocar los bucles debajo
+ * {2,5}
Repetir (la etiqueta muestra cuántas veces)
Vía desvío arriba
? * {0,3}
La parte es opcional.
Bucle discontinuo
+? *?
Perezoso: repite el menor número de veces posible
Marco de color 'Nombre #1'
(…) (?<nombre>…)
Grupo de captura, numerado de izquierda a derecha
Marco discontinuo 'seguido de:'
(?=…) (?!…) (?<=…)
Mirar hacia adelante / mirar hacia atrás
Hoja de referencia de expresiones regulares: la sintaxis que usarás todos los días
Abra la hoja de referencia incorporada encima del probador y haga clic en cualquier token para insertarlo en su cursor. Estos son los componentes básicos de casi todos los patrones:
Simbólico
Partidos
Ejemplo
\d
Un dígito 0-9
\d{4} coincide con 2026
\w
Letra, dígito o guión bajo
\w+ coincide con usuario_42
\s
Espacios en blanco (espacio, tabulación, nueva línea)
a\sb coincide con 'a b'
.
Cualquier carácter excepto un salto de línea
a.c coincide con abc, a-c
[abc] / [^abc]
Uno de/ninguno de los personajes enumerados
[aeiou] coincide con una vocal
^ y $
Inicio y final de la cadena (o línea con m)
^\d+$ son solo dígitos
\b
Un límite de palabras
\bcat\b omite 'concatenar'
* + ?
0+, 1+ o 0-1 repeticiones
color coincide con el color, color
{n,m}
Entre n y m repeticiones
\d{2,4}
(…) y (?<nombre>…)
Grupo de captura/grupo con nombre
(?<año>\d{4})
(?:…)
Agrupar sin capturar
(?:ab)+
\1, \k<nombre>
Mismo texto que un grupo anterior.
(\w)\1 coincide con 'll'
(?=…) (?!…)
Seguido de/no seguido de
\d+(?=px)
(?<=…) (?<!…)
Precedido por/no precedido por
(?<=\$)\d+
Banderas de expresiones regulares explicadas
Las banderas cambian el comportamiento de todo el patrón. Alternelos con un clic; coloque una bandera para ver qué hace.
Bandera
Nombre
Efecto
g
global
Encuentra cada coincidencia en lugar de detenerte en la primera
i
ignorar caso
Las letras coinciden en mayúsculas o minúsculas
m
multilínea
^ y $ coinciden al principio/final de cada línea
s
puntoTodos
. también coincide con saltos de línea
u
Unicode
Trata los emoji y los personajes astrales como un solo personaje; habilita \p{…}
v
conjuntos Unicode
Todo lo que haces, además de operaciones de configuración como [\p{L}--[a-z]]
y
pegajoso
Cada partido debe comenzar exactamente donde terminó el anterior.
Reemplazar, extraer, dividir y realizar pruebas unitarias en un solo lugar
Cambie a Reemplazar para crear una regla de buscar y reemplazar con tokens $1, $<nombre>, $& y $$; el resultado resalta cada pieza insertada para que pueda verificarla antes de ejecutarla con datos reales. Extract convierte cada coincidencia en una lista usando una plantilla (por ejemplo $2, $1 para intercambiar dos grupos), con opciones únicas y de clasificación y exportación CSV o JSON para hojas de cálculo. Split muestra exactamente lo que devuelve String.split(), incluidos los separadores capturados. Las pruebas unitarias le permiten precisar el comportamiento: agregue cadenas que deben coincidir, deben coincidir completamente o no deben coincidir, y el recuento de aprobación/rechazo se actualiza con cada pulsación de tecla, de modo que un pequeño cambio en su patrón nunca rompa silenciosamente un caso que ya solucionó.
Retroceso catastrófico (ReDoS) y cómo este probador lo protege
Algunos patrones, como (a+)+$ o (\w+\s?)*$, se pueden dividir entre sus repeticiones de muchas maneras exponenciales. Cuando la entrada casi coincide, el motor intenta todas las combinaciones y puede congelar una pestaña del navegador o desactivar un servidor, una vulnerabilidad conocida como ReDoS (expresión regular de denegación de servicio). Este probador ejecuta cada patrón en un Web Worker separado con un límite de dos segundos: si el motor se atasca, se detiene y recibe una advertencia clara en lugar de una página congelada. Un linter incorporado también señala la forma riesgosa (un grupo repetido cuya parte interna también se repite) antes de enviarlo, junto con otros errores comunes como un punto sin escape en un nombre de dominio, rangos [A-z] y alternativas vacías.
Utilice la misma expresión regular en Python, PHP, Java, C#, Go, Rust y Ruby
El probador ejecuta el motor de expresiones regulares JavaScript (ECMAScript) de su navegador, por lo que los resultados son exactos para JavaScript, TypeScript y Node.js. La pestaña Código convierte su patrón en código listo para pegar para otros ocho lenguajes y convierte las partes que difieren: los grupos con nombre se convierten en (?P<nombre>…) para Python, las banderas se convierten en RegexOptions para C# o en línea (?i) para Go y Rust, y los tokens de reemplazo se reescriben para cada idioma. Una tabla de compatibilidad enumera todas las funciones que utiliza su patrón y si cada motor las admite:
Comience a partir de un patrón probado o genere uno a partir de ejemplos
La biblioteca de patrones contiene 40 expresiones probadas y listas para usar, cada una con texto de muestra: correo electrónico, URL, IPv4 e IPv6, E.164 y números de teléfono de EE. UU., contraseñas seguras, UUID, versiones semánticas, códigos postales del Reino Unido, fechas ISO y DD/MM/AAAA, precios, hashtags, @menciones, enlaces Markdown, etiquetas HTML, líneas de registro de Apache/Nginx, palabras duplicadas y más. Si prefiere comenzar con sus datos, pegue algunos ejemplos en Build: el generador agrupa letras, dígitos y símbolos en un patrón como ^\d{4}-\d{2}-\d{2}$ que puede refinar. Build también puede escapar de cualquier texto literal, por lo que caracteres como . * ? ( ) $ coinciden exactamente.
Privado por diseño
Todo se ejecuta localmente en el motor JavaScript de su navegador: nada de lo que escribe se carga, registra o almacena en un servidor. Su última sesión se guarda en este navegador para que pueda continuar donde la dejó, los patrones guardados permanecen en su dispositivo y los enlaces para compartir llevan el patrón, el texto y las pruebas dentro de la propia URL, por lo que no se almacena nada de nuestra parte.
Preguntas frecuentes
¿Qué tipo de expresión regular utiliza este probador?
Utiliza el motor de expresión regular JavaScript (ECMAScript) propio de su navegador, el mismo que usan Chrome, Firefox, Safari y Node.js, incluidas las banderas g, i, m, s, u, v e y. Los resultados son exactos para JavaScript y TypeScript; la pestaña Código convierte el patrón para otros idiomas.
¿Puedo probar grupos de captura?
Sí. Cada coincidencia enumera su posición y el valor de cada grupo numerado y nombrado, los grupos están resaltados con colores dentro de su texto y al hacer clic en una coincidencia se muestra el valor capturado de cada grupo directamente en el diagrama.
¿Cómo funciona la vista previa de reemplazo?
Escriba un reemplazo usando $1, $2 para grupos numerados, $<nombre> para grupos con nombre, $& para toda la coincidencia y $$ para un signo de dólar literal. El resultado se actualiza en vivo y resalta cada pieza insertada, exactamente como la produciría String.replace().
¿Los datos de mi prueba son privados?
Sí. La expresión regular se ejecuta completamente en su navegador, en un Web Worker local. Sus patrones y cadenas de prueba nunca se cargan; Los patrones guardados permanecen únicamente en este navegador.
¿Cómo pruebo una expresión regular con mi texto?
Escriba su patrón y pegue el texto de muestra; Las coincidencias se resaltan en vivo y se muestran grupos de captura, para que pueda ver exactamente con qué coincide su expresión regular y refinarla al instante.
¿Por qué mi expresión regular no coincide con nada?
Las causas comunes son la falta de un indicador (i para mayúsculas, m entonces ^ y $ funcionan por línea, s entonces . cruza saltos de línea), un carácter especial sin escape o sintaxis de otro idioma. Pase el cursor sobre el diagrama para ver qué espera cada parte, lea la explicación en inglés sencillo y consulte las advertencias debajo del patrón.
¿Puedo probar el mismo patrón para JavaScript y otras versiones?
La coincidencia se ejecuta en el motor JavaScript y la pestaña Código genera código de trabajo para Python, PHP, Java, C#, Go, Rust y Ruby, convirtiendo grupos con nombre, indicadores y sintaxis de reemplazo. Una tabla de compatibilidad muestra qué características, como búsqueda retrospectiva o referencias anteriores, no son compatibles con cada motor.
¿Qué es un visualizador de expresiones regulares o un diagrama de ferrocarril?
Un visualizador de expresiones regulares dibuja una expresión regular como un diagrama de ferrocarril: una vía que se sigue de izquierda a derecha donde las bifurcaciones son alternativas, los bucles son repeticiones y los desvíos son partes opcionales. Hace que los patrones largos sean mucho más fáciles de leer que la sintaxis sin formato. Aquí el diagrama es interactivo: coloque el cursor sobre un cuadro para resaltarlo en el patrón y vea una explicación en inglés sencillo.
¿Puedo descargar el diagrama de expresiones regulares?
Sí. Utilice los botones SVG o PNG encima del diagrama para descargarlo para documentación, revisiones de código o material didáctico. Los controles de zoom y ajuste de ancho ayudan con patrones largos.
¿Qué es el retroceso catastrófico (ReDoS)?
Ocurre cuando un patrón como (a+)+$ puede dividir el mismo texto entre repeticiones anidadas de muchas maneras exponenciales, por lo que una entrada casi accidental hace que el motor funcione durante segundos u horas. Este probador ejecuta patrones en un Web Worker, los detiene después de dos segundos y advierte sobre cuantificadores anidados antes de implementarlos.
¿Cómo convierto una expresión regular de JavaScript a Python?
Abra la pestaña Código y elija Python. La herramienta reescribe (?<nombre>…) como (?P<nombre>…), \k<nombre> como (?P=nombre), asigna los indicadores i, mys a re.IGNORECASE, re.MULTILINE y re.DOTALL, y convierte los reemplazos de $1 a \g<1>. Tenga en cuenta que el módulo re integrado de Python no admite \p{…} propiedades Unicode.
¿Qué significan las banderas de expresiones regulares g, i, m, s, u, v e y?
g encuentra todas las coincidencias, i ignora mayúsculas y minúsculas, m hace que ^ y $ funcionen en cada línea, s permite. coincidir con saltos de línea, u habilita propiedades Unicode completas y \p{…}, v agrega operaciones de conjunto Unicode e y (fija) solo coincide en la posición exacta donde terminó la última coincidencia.
¿Cuál es la diferencia entre cuantificadores codiciosos y perezosos?
Los cuantificadores codiciosos (*, +, {n,m}) coinciden tanto como sea posible y luego devuelven caracteres si es necesario; los perezosos (*?, +?, {n,m}?) coinciden lo menos posible y se expanden solo cuando es necesario. Por ejemplo, <.+> coincide con una línea completa de etiquetas, mientras que <.+?> coincide con una etiqueta a la vez. En el diagrama, se dibuja un bucle difuso con trazos.
¿Cómo funcionan la mirada hacia adelante y hacia atrás?
Comprueban lo que viene después (?=…) o antes (?<=…) de la posición actual sin incluirlo en el partido; las formas negativas (?!…) y (?<!…) requieren que el texto NO esté allí. Por ejemplo \d+(?=px) coincide con 12 en '12px'. JavaScript admite búsqueda hacia atrás de cualquier longitud.
¿Puede esta herramienta generar una expresión regular para mí?
Sí. Pegue algunos ejemplos en la pestaña Construir y sugerirá un patrón generalizando letras, dígitos y símbolos (por ejemplo, 2026-09-24 se convierte en \d{4}-\d{2}-\d{2}). También puede comenzar con 40 patrones probados en la biblioteca, como reglas de correo electrónico, URL, dirección IP, número de teléfono, fecha y contraseña.
¿Cómo escribo pruebas unitarias para una expresión regular?
Abra la pestaña Pruebas unitarias y agregue cadenas que deben coincidir, deben coincidir completamente o no deben coincidir. Cada prueba se vuelve a ejecutar con cada pulsación de tecla con un recuento de aprobación/rechazo, y Importar líneas convierte cada línea de su texto de prueba en un caso de prueba.
¿Puedo compartir una expresión regular con alguien?
Haga clic en el enlace Compartir para copiar una URL que vuelva a abrir el patrón exacto, las banderas, el texto de prueba, el reemplazo y las pruebas unitarias. Todo está codificado dentro del enlace, por lo que nada se almacena en un servidor.
¿En qué se diferencia esto de regex101 o RegExr?
regex101 le permite cambiar entre varios motores como PCRE, Python y Java, algo que esta herramienta no hace. Este probador se centra en el motor JavaScript en el que realmente se ejecuta su código y agrega un diagrama ferroviario interactivo, pruebas unitarias, protección ReDoS, exportación de código para 9 idiomas y una tabla de compatibilidad, sin cuenta ni nada cargado.