Herramientas
Guías

Probador de expresiones regulares

Dev

Prueba expresiones regulares de JavaScript con resaltado de coincidencias y grupos de captura.

100 % del lado del cliente Sin backend
Salida
    En esta página

    ¿Qué es un probador de expresiones regulares?#

    Una expresión regular es una notación compacta para describir patrones en el texto: «todo lo que parezca un correo», «la tercera palabra de cada línea», «todos los números que no estén entre comillas». Escribir el patrón es solo la mitad del trabajo; la otra mitad es ver qué coincide realmente, sobre un texto que se parezca al tuyo, antes de pegarlo en código de producción. Un probador de regex es la página donde haces eso.

    Esta herramienta ejecuta tu patrón contra tu texto de muestra en tiempo real, resalta cada coincidencia en su sitio y enumera cada grupo de captura por separado, para que confirmes no solo que coincidió, sino qué capturó. Usa el motor de regex de JavaScript (el mismo que ya entienden tu navegador y Node), así que el comportamiento de aquí coincide con lo que hará tu código.

    Cómo se usa#

    1. Introduce el Patrón entre los dos marcadores / de la parte superior izquierda. No tecleas las barras tú mismo: están dibujadas por ti, igual que se escribe un regex literal en código.
    2. Introduce las Banderas en la caja pequeña a la derecha del patrón. Las que más usarás:
      • g: buscar todas las coincidencias, no solo la primera.
      • i: sin distinguir mayúsculas.
      • m: ^ y $ coinciden con el inicio y el final de cada línea, no solo de toda la cadena.
      • s: dejar que . coincida también con los saltos de línea.
      • u: tratar el patrón como Unicode (importa para emoji y no-ASCII).
    3. Pega tu Texto de prueba en la caja de abajo. Usa un texto que se parezca de verdad a tu entrada real: un patrón que funciona con ejemplos limpios a menudo se comporta mal con datos más sucios.
    4. Lee la vista previa resaltada de la derecha: cada coincidencia se muestra en su sitio, en contexto. Debajo, cada grupo de captura se enumera con su índice, su texto capturado y el desfase donde se encontró.

    Características clave#

    • Resaltado en vivo. Cada coincidencia se renderiza en su sitio sobre el texto original, así puedes ver las fronteras de un vistazo, incluido el caso incómodo en que una coincidencia atraviesa un espacio en blanco.
    • Lista de capturas por grupo. Índice de grupo, subcadena coincidente y desfase de caracteres, una fila por captura. Esencial cuando un patrón tiene tres o cuatro grupos y necesitas saber cuál es cuál.
    • Varias banderas a la vez. Combina g, i, m, s, u libremente (por ejemplo giu para global, sin mayúsculas y con consciencia Unicode).
    • Aviso de ReDoS. Algunos patrones, típicamente los cuantificadores anidados como (a+)+, pueden explotar de forma exponencial con una entrada manipulada. La línea de estado señala el propio patrón en el momento en que coincide, invitándote a simplificarlo antes de que se enfrente a una entrada hostil. La comprobación lee la forma de tu patrón; no mide cuánto tardó la última ejecución, y un patrón verdaderamente catastrófico puede seguir bloqueando la pestaña, así que haz caso del aviso.
    • Acotado por diseño. La entrada se limita a 250.000 caracteres y la lista de coincidencias deja de crecer más allá de unos pocos miles de entradas (el panel de captura muestra las primeras 200), así que un pegado accidental de un archivo enorme no puede ejecutarse en silencio para siempre.
    • Sin ida y vuelta. El patrón y el texto se procesan en tu navegador; nada se envía a ningún sitio.

    Ejemplo práctico#

    Supón que tienes una lista de líneas de log y quieres extraer el método y la ruta de las líneas que empiezan por un verbo HTTP. Usa este patrón:

    (\w+)\s+(/[\w/-]+)

    con las banderas gm, y pruébalo contra:

    GET /api/users
    POST /api/login
    DELETE /api/users/42
    not a log line
    PUT /api/items/3-qty

    La herramienta resalta la primera, la segunda, la tercera y la quinta línea (la cuarta no empieza por una palabra seguida de una ruta). La lista de captura informa, para cada coincidencia, del método y de la ruta por separado: así DELETE es el grupo 1 y /api/users/42 es el grupo 2, y puedes confirmar que el grupo de la ruta incluye correctamente el segmento final -qty en la última línea.

    Preguntas frecuentes#

    ¿Qué variante de regex usa esta herramienta?#

    El motor integrado de JavaScript, el mismo que usan String.prototype.match, RegExp.prototype.exec y los literales de regex de Node. Un patrón que funcione aquí funcionará sin cambios en tu código frontend o en tu servidor Node. No es PCRE, RE2 ni el regex de Rust: si copias un patrón de un código en PHP o Go, pruébalo aquí antes de fiarte.

    La herramienta avisa de un posible ReDoS. ¿Qué significa?#

    Ciertos patrones pueden llevar a ejecutarse durante mucho rato con una entrada hostil; el ejemplo clásico es (a+)+b aplicado a una cadena de a sin una b final. Los atacantes lo explotan para denegación de servicio en servicios basados en regex. El aviso es una lectura estática de la forma de tu patrón (cuantificadores anidados, alternancia solapada); se dispara en el momento en que tal patrón produce una coincidencia, no basándose en cuánto tardó la última ejecución. Si lo ves, simplifica el patrón: elimina los cuantificadores anidados, ancla el patrón o usa grupos atómicos si tu motor destino los admite.

    ¿Por qué mi patrón solo coincide una vez?#

    Probablemente te falte la bandera g. Sin g, un regex de JavaScript se detiene en la primera coincidencia. Añade g para encontrar cada aparición no solapada.

    ¿. coincide con los saltos de línea?#

    No por defecto: . coincide con cualquier carácter excepto un terminador de línea. Añade la bandera s (a veces llamada «dotall») si quieres que . abarque saltos de línea, útil al coincidir bloques que incluyen saltos de línea.