Probador y visualizador de expresiones regulares

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.

Construido y mantenido por Shehzad Munir ·

Probador y visualizador de expresiones regulares
Loading Loading Regex Tester
Share

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. 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. 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. 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. 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. 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. 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 diagramaSintaxis de expresiones regularesSignificado
Cuadro con texto citadoabc\. \norteEstos 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^ $ \bUn ancla: una posición, no un personaje
La pista se divide en ramasgato|perroCualquiera 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ólicoPartidosEjemplo
\dUn dígito 0-9\d{4} coincide con 2026
\wLetra, dígito o guión bajo\w+ coincide con usuario_42
\sEspacios en blanco (espacio, tabulación, nueva línea)a\sb coincide con 'a b'
.Cualquier carácter excepto un salto de líneaa.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
\bUn límite de palabras\bcat\b omite 'concatenar'
* + ?0+, 1+ o 0-1 repeticionescolor 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.

BanderaNombreEfecto
gglobalEncuentra cada coincidencia en lugar de detenerte en la primera
iignorar casoLas letras coinciden en mayúsculas o minúsculas
mmultilínea^ y $ coinciden al principio/final de cada línea
spuntoTodos. también coincide con saltos de línea
uUnicodeTrata los emoji y los personajes astrales como un solo personaje; habilita \p{…}
vconjuntos UnicodeTodo lo que haces, además de operaciones de configuración como [\p{L}--[a-z]]
ypegajosoCada 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ó.

Extraiga cada dirección de correo electrónico del textoComparar dos versiones de un texto una al lado de la otraCodificar o decodificar cadenas de consulta de URL

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:

CaracterísticajavascriptPython rePCRE/PHPJava/.NETIr / Óxido
Previsión (?=)SíSíSíSíNo
Mirar hacia atrás (?<=)cualquier longitudLongitud fijaFijo/limitadoLimitado/cualquieraNo
Referencias anteriores \1SíSíSíSíNo
Grupos nombrados(?<n>…)(?P<n>…)(?<n>…)(?<n>…)(?P<n>…) / (?<n>…)
Unicode\p{L}Con tu banderaNo (módulo de expresiones regulares)SíSí / parcialParcial / si
\d coincide con dígitos que no son ASCIINoSíNoNo / siNo / si

Generar tipos de TypeScript desde JSONConstruir y explicar expresiones cron

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.

De la revista

All articles →