Probador de regex

Escribe una expresión regular y un texto de prueba: las coincidencias se resaltan al instante, con grupos de captura, grupos con nombre y vista previa del reemplazo. Incluye patrones listos para email, móvil, código postal, DNI y más.

Coincidencias —

Lista de coincidencias · grupos

#PosiciónCoincidenciaGrupos

No hay coincidencias.


  

Sobre la herramienta: Probador de regex

Una expresión regular (regex) es un pequeño lenguaje de patrones para buscar o sustituir texto que sigue una regla: validar formularios, analizar logs o hacer buscar y reemplazar masivo. Este probador usa el motor de expresiones regulares de JavaScript de tu navegador, así que obtienes exactamente el mismo resultado que en código JavaScript o TypeScript.

La búsqueda se ejecuta en un hilo aparte (Web Worker). Si un patrón mal construido tarda demasiado, se detiene automáticamente a los 1,5 segundos y la página no se bloquea.

Cómo se usa

  1. Elige un ejemplo en Patrones habituales o escribe tu propia expresión. No hace falta poner las barras (/) alrededor.
  2. Activa o desactiva los flags que necesites (g, i, m, s, u, y).
  3. Escribe el texto de prueba: las coincidencias se resaltan y la lista inferior muestra su posición y el valor de cada grupo.
  4. Usa $1, $<nombre> o $& en Reemplazo para ver cómo quedaría el texto sustituido.

Chuleta de regex

SintaxisSignificadoEjemplo
\d \w \sdígito / letra, dígito o _ / espacio\d{5}
.cualquier carácter salvo salto de línea (incluido con el flag s)a.c
* + ? {n,m}0 o más / 1 o más / 0 o 1 / de n a m veces\d{3,4}
^ $inicio / fin (de cada línea con el flag m)^\d+$
[áéíóúñ]clase de caracteres – ¡\w no incluye tildes ni la ñ![A-Za-zÁÉÍÓÚáéíóúÑñ]+
( ) (?: )grupo de captura / grupo sin captura(\d{2})/(\d{2})
(?<nombre> )grupo con nombre(?<year>\d{4})
(?= ) (?! )búsqueda anticipada / anticipada negativa\d+(?=\s?€)

Qué hace cada flag

  • g (global): busca todas las coincidencias, no solo la primera.
  • i (ignoreCase): no distingue mayúsculas de minúsculas.
  • m (multiline): ^ y $ coinciden al inicio y al final de cada línea.
  • s (dotAll): el punto (.) también coincide con saltos de línea.
  • u (unicode): trata un emoji como un solo carácter y permite \p{…}, p. ej. \p{L} para todas las letras, con tildes incluidas.
  • y (sticky): solo intenta coincidir en la posición actual (lastIndex).

Cuidado con el backtracking catastrófico (ReDoS)

Los patrones con repeticiones anidadas como ^(a+)+$ pueden tardar un tiempo exponencial con textos que no coinciden y bloquear un servidor: es lo que se conoce como ataque ReDoS. Si aquí se agota el tiempo, elimina el anidamiento, por ejemplo cambiando (a+)+ por a+.

Preguntas frecuentes

¿El patrón de DNI comprueba si la letra es correcta?

No. La expresión regular solo comprueba el formato (8 cifras y una letra). La letra de control se calcula con el resto de dividir el número entre 23, algo que una regex no puede hacer. Lo que escribes no se envía a ningún servidor.

¿Los resultados son iguales que en Python, Java o PCRE?

La sintaxis básica es casi la misma, pero hay diferencias de detalle. Python escribe los grupos con nombre como (?P…) y en las cadenas de Java hay que duplicar la barra invertida (\\d). Este probador sigue JavaScript (ECMAScript).

¿Por qué \w no encuentra la ñ ni las tildes?

En JavaScript, \w solo cubre A–Z, a–z, 0–9 y _. Para palabras en español usa [A-Za-zÁÉÍÓÚÜáéíóúüÑñ] o, con el flag u, la clase \p{L}.

¿Qué pasa si hay muchísimas coincidencias?

Se buscan y resaltan hasta 5000 coincidencias; la tabla muestra las 300 primeras.