Regex Tester
Understand Regex Tester
Este probador ejecuta una expresión regular sobre un texto de ejemplo y muestra todas las coincidencias, su posición y el contenido de cada grupo de captura.
How it works
El patrón se compila con el propio motor RegExp del navegador, así que lo que ocurre aquí es exactamente lo que ocurre en Node y en el navegador: sintaxis de ECMAScript, no PCRE ni RE2. Ese motor hace backtracking: cuando una rama falla, retrocede y prueba la siguiente alternativa, y por eso un cuantificador dentro de otro cuantificador, como (a+)+$, puede explorar un número exponencial de caminos frente a una cadena larga que no coincide. Eso es el backtracking catastrófico, y el corte de dos segundos que hay aquí existe para detectarlo.
When to use it
- Averiguar por qué un patrón de validación rechaza una entrada que debería aceptar.
- Extraer campos de líneas de log antes de comprometerse con el código de análisis.
- Comprobar la numeración de los grupos de captura antes de conectarla a una cadena de sustitución.
- Probar un patrón contra los casos incómodos — cadena vacía, texto no ASCII, varias líneas — en lugar de contra el caso feliz.
Watch out for
- El probador siempre se ejecuta con el flag global para que vea todas las coincidencias. Su propio código, con un regex no global, obtiene solo la primera; y un regex global reutilizado entre llamadas arrastra lastIndex de una a otra, que es la razón de que .test() pueda alternar entre true y false sobre la misma cadena.
- Un patrón que aquí tarda segundos tarda segundos en producción. Si llega a ejecutarse contra entradas proporcionadas por el usuario en un servidor, es un vector de denegación de servicio, y un patrón proporcionado por el usuario es aún peor.
- Las clases \d, \w y \b de JavaScript son solo ASCII. Un patrón copiado de Python o de Java que dependa de clases con soporte unicode dejará escapar en silencio la entrada que no esté en inglés.
- El punto no coincide con un salto de línea salvo que añada el flag s, y ^ y $ anclan toda la cadena salvo que añada m.
Not the right tool for: Validar direcciones de correo electrónico. Todos los regex para ello son incorrectos o ilegibles: compruebe que haya una @ con algo a cada lado y después envíe un mensaje de confirmación.
Frequently Asked Questions
¿Qué variante de regex se usa?
Este probador usa el motor RegExp incorporado de JavaScript, que sigue la sintaxis regex de ECMAScript. Es el mismo motor que se usa en Node.js y en los navegadores.
¿Qué flags se admiten?
JavaScript admite: g (global), i (sin distinguir mayúsculas), m (multilínea), s (dotAll), u (unicode) e y (sticky). Introdúzcalos en el campo de flags.
¿Cómo se capturan grupos?
Use paréntesis para los grupos de captura: (\w+). Los grupos con nombre se escriben (?<name>\w+). Los resultados muestran tanto los valores de los grupos numerados como los de los grupos con nombre.
How to Use Regex Tester
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.