Convertidor Gratuito

Expresión Regular Tester

Prueba y depura expresiones regulares al instante en tu navegador. Resalta coincidencias, ve grupos de captura y usa el modo reemplazar — gratis y privado.

//g
Banderas:

Acerca de esta herramienta

Las expresiones regulares son un lenguaje de dominio específico para hacer coincidir patrones en el texto. Han sido parte de la informática desde 1968 y ahora están integrados en todos los lenguajes de programación, editores de texto y herramientas de búsqueda de línea de comandos modernos. La sintaxis es concisa pero propensa a errores: pequeños cambios producen un comportamiento de coincidencia sutilmente diferente y las expresiones complejas se vuelven ilegibles rápidamente. Un probador que muestra coincidencias en tiempo real a medida que edita el patrón es la forma más eficaz de desarrollar y verificar expresiones regulares.

Este probador se ejecuta en su navegador utilizando el motor de expresiones regulares JavaScript (el mismo que usa su aplicación si se ejecuta en un navegador). Los patrones y el texto de prueba se actualizan reactivamente: cada cambio en cualquiera de los dos vuelve a ejecutar la coincidencia. Los grupos coincidentes se resaltan, los grupos capturados se enumeran y las marcas (sin distinción entre mayúsculas y minúsculas, multilínea, globales) se exponen para realizar pruebas.

La sintaxis de expresiones regulares varía sutilmente entre motores. JavaScript sigue la especificación ECMAScript; Python, PCRE (utilizado por PHP y muchos otros), Java y Go tienen cada uno sus propios dialectos con características superpuestas pero no idénticas. Los patrones desarrollados aquí utilizan la sintaxis ECMAScript; La portabilidad entre motores requiere verificar la documentación de cada objetivo.

Por qué utilizar un probador de expresiones regulares

Los errores de expresiones regulares son muy difíciles de depurar después de la implementación. Un patrón que parece razonable puede coincidir más o menos con lo previsto, fallar en casos extremos o tener un retroceso catastrófico en ciertas entradas. La prueba de patrones de forma interactiva frente a entradas representativas detecta problemas antes de la revisión y producción del código.

Los patrones también se benefician de la documentación. Mostrar una expresión regular junto a la entrada que debería coincidir y la entrada que no debería coincidir hace que la intención sea explícita. Los futuros mantenedores (incluido usted mismo dentro de seis meses) aprecian los casos de prueba documentados más que las frases ingeniosas.

Cómo usarla

Escriba un patrón, escriba una entrada de prueba, vea los partidos resaltados en vivo.

  1. Introduce tu patrón: Escriba el patrón de expresiones regulares en el campo de patrón. Tanto las expresiones regulares literales (/pattern/flags) como las formas de solo patrón funcionan; Las banderas se pueden configurar a través de la entrada de banderas.
  2. Agregar entrada de prueba: Pegue el texto de muestra que el patrón debería coincidir (e idealmente también el texto que no debería coincidir). El probador compara el patrón con la entrada y resalta las coincidencias.
  3. Establecer banderas: Banderas comunes: g (global, buscar todas las coincidencias), i (no distingue entre mayúsculas y minúsculas), m (multilínea, ^ y $ inicios/finales de línea de coincidencia), s (dotall, . coincide con nuevas líneas), u (Unicode).
  4. Inspeccionar resultados: Cada coincidencia se resalta en la entrada. Los grupos de captura aparecen en una lista con índice y valor de grupo. El probador también muestra el recuento de coincidencias y cualquier error de compilación en el patrón.

Casos de uso comunes

Detalles técnicos

La expresión regular de JavaScript sigue la especificación ECMAScript. Características principales: clases de caracteres ([abc], [^abc]), cuantificadores (*, +, ?, {n,m}), alternancia (|), agrupación ((...)), captura y no captura de grupos, búsqueda anticipada y posterior (motores modernos), referencias inversas, grupos con nombre, escapes de propiedades Unicode (con bandera u) y el conjunto estándar de secuencias de escape.

Diferencias importantes con PCRE y Python: la compatibilidad con retrospectiva es reciente en JavaScript (2018+); los grupos con nombre utilizan la sintaxis (?<nombre>...); algunos escapes Unicode requieren que el indicador u funcione correctamente. Los patrones destinados al uso en varios idiomas deben compararse con la documentación de cada destino.

Rendimiento: los motores de expresiones regulares basados en retroceso (la mayoría incluye JavaScript) pueden tener un retroceso catastrófico en ciertos patrones patológicos. Las pruebas que cuelgan al evaluador son una señal de que el patrón necesita simplificación, generalmente evitando cuantificadores anidados y alternancia ambigua.

Mejores prácticas

Preguntas frecuentes

¿Qué tipo de expresiones regulares admite esta herramienta?
Utiliza el motor RegExp integrado de JavaScript, que admite la sintaxis estándar que incluye búsquedas anticipadas y posteriores (en los navegadores modernos), grupos de captura con nombre y escapes de propiedades Unicode.
¿Puedo probar reemplazos de expresiones regulares?
Sí. Cambie al modo Reemplazar para ingresar un patrón de reemplazo. Puede usar $1, $2, etc. para capturar referencias anteriores de grupos y $<nombre> para grupos con nombre.
¿Por qué mi expresión regular coincide de manera diferente aquí que en Python/PHP?
Los diferentes lenguajes de programación tienen motores de expresiones regulares ligeramente diferentes. JavaScript no admite cuantificadores posesivos ni algunas funciones específicas de PCRE. La sintaxis principal (clases de caracteres, cuantificadores, grupos) es la misma en todos los idiomas.
¿La herramienta guarda mis patrones de expresiones regulares?
No. No se guarda ni se transmite nada. La herramienta se ejecuta completamente en su navegador. Puede marcar o compartir patrones copiando la cadena de expresiones regulares.
¿Cómo hago coincidir un carácter especial literal?
Escápese con una barra invertida. Para hacer coincidir un punto literal: \. Para hacer coincidir una barra invertida literal: \\. Dentro de las clases de caracteres [...], la mayoría de los caracteres especiales pierden su significado.
¿El probador se ejecuta en un servidor?
No. La compilación y coincidencia de patrones se realizan en su navegador utilizando el objeto RegExp nativo.
¿Puedo probar patrones para motores que no sean JavaScript?
Principalmente. Para patrones simples, los principales motores están de acuerdo. Para funciones avanzadas (mirada hacia atrás, grupos atómicos, cuantificadores posesivos, escapes de propiedades Unicode), confirme con la documentación del motor de destino.
¿Maneja entradas muy grandes?
Hasta unos pocos megabytes funcionan sin problemas. Las entradas más grandes pueden ralentizar o bloquear el navegador, especialmente con patrones propensos a retroceder.