Probador de expresiones regulares (regex) con reemplazo

Pruebe una regex de JavaScript en su texto: coincidencias resaltadas, posiciones, grupos capturados, reemplazo con $1 y $2, explicación de los símbolos y patrones listos para usar.

Entender una regex: grupos de captura, $1 y reemplazo

Cada par de paréntesis de una expresión regular captura una parte de la coincidencia, numerada de izquierda a derecha ($1, $2…), que el reemplazo puede reutilizar. La herramienta resalta las coincidencias en el texto, detalla los grupos capturados de cada una, nombra los elementos de sintaxis presentes en el patrón y ofrece el código JavaScript equivalente.

Los grupos de captura en la práctica

El patrón por defecto ([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,}) tiene dos grupos: $1 captura la parte anterior a la arroba y $2 el dominio. En el texto de ejemplo, con los indicadores gi, la herramienta encuentra 3 direcciones; para support@kristools.com, $1 vale support y $2 kristools.com. El reemplazo [$1 at $2] da [support at kristools.com]. Un grupo que empieza por (?: agrupa sin capturar y no recibe número.

Ejemplo: pasar fechas ISO a día/mes/año

El patrón de fecha ISO captura año, mes y día en tres grupos. En su frase de ejemplo retiene 2026-08-25 y 2026-12-31 e ignora 2026-13-40, un mes imposible. El reemplazo $3/$2/$1 produce 25/08/2026 y 31/12/2026.

Qué muestra la herramienta

  • Las coincidencias resaltadas en el texto, con su posición de inicio y de fin.
  • Para cada una, la lista $1, $2… de grupos capturados.
  • Un análisis que nombra los elementos detectados en el patrón: ^, $, \d, \w, \s, \b, los cuantificadores +, * y ?, los grupos y las clases entre corchetes.
  • El botón «JS Code», que copia const regex = /patrón/indicadores; seguido de una llamada a text.match(regex).

Los ocho patrones propuestos (correo, URL, teléfono francés, fecha ISO, IPv4 limitada a 0-255, color hexadecimal, UUID v4, etiqueta HTML) cargan también un texto de prueba adecuado.

Límites

  • El análisis detecta caracteres, no lee la estructura: un + dentro de una clase como [+-] se describe igualmente como cuantificador. Las llaves {n,m}, la alternancia |, el punto y las aserciones hacia delante o hacia atrás no se explican.
  • Una barra no escapada en el patrón invalida el código JavaScript copiado: escriba \/.
  • Con el indicador g, la lista se detiene en 1.000 coincidencias.

Para ocultar correos, UUID o etiquetas en un texto, cargue el patrón correspondiente, escriba el texto de reemplazo y copie el resultado con el botón situado encima de la cadena resultante.

Preguntas frecuentes

¿Cómo se usan $1 y $2 en un reemplazo con regex?

$1 inserta el texto capturado por el primer par de paréntesis y $2 por el segundo, contando los paréntesis de apertura de izquierda a derecha. Con el patrón por defecto y el reemplazo [$1 at $2], support@kristools.com pasa a ser [support at kristools.com].

amp; inserta la coincidencia completa.

¿Qué diferencia hay entre (...) y (?:...)?

(...) captura el texto y le asigna un número reutilizable ($1, $2…). (?:...) solo agrupa, por ejemplo para aplicar un cuantificador a varios caracteres, sin crear un grupo numerado. Cambiar un grupo innecesario por (?:...) evita desplazar la numeración de los siguientes.

¿Cómo convertir una fecha AAAA-MM-DD a DD/MM/AAAA con una regex?

Capture las tres partes con \b(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])\b y reemplace por $3/$2/$1. 2026-08-25 se convierte en 25/08/2026 y 2026-13-40 se ignora porque no existe el mes 13. El día 31 se acepta en todos los meses, así que 2026-02-31 pasa.

¿El código JavaScript copiado funciona tal cual?

Con la mayoría de patrones, sí: la herramienta copia const regex = /patrón/indicadores; y luego text.match(regex). Si el patrón contiene una barra sin escapar, el literal deja de ser válido: escriba \/ en lugar de /. Con el indicador g, match devuelve la lista de coincidencias sin los grupos; use matchAll para obtenerlos.

¿Por qué mi regex solo encuentra una coincidencia?

Seguramente el indicador g (global) está desactivado. Sin él, JavaScript se detiene en la primera coincidencia, tanto al buscar como al reemplazar. Active g para obtener todas las apariciones.

¿Qué regex detecta un número de teléfono francés?

El patrón incluido es (?:(?:\+|00)33|0)\s*[1-9](?:[\s.-]*\d{2}){4}. Reconoce tanto 06 12 34 56 78 como +33 1.23.45.67.89: prefijo +33, 0033 o 0, una cifra del 1 al 9 y cuatro pares de cifras separados o no por espacios, puntos o guiones.

¿Cómo ocultar todas las direcciones de correo de un texto con una regex?

Cargue el patrón de correo, deje activo el indicador g y escriba [CORREO OCULTO] en el campo de reemplazo. En el texto de ejemplo que se carga, las 2 direcciones completas se sustituyen e invalid@email, sin extensión de dominio, queda igual. El botón de copia recoge el texto resultante.

¿El patrón IPv4 comprueba que una dirección IP es válida?

Sí, en cuanto al rango de cada octeto: el patrón repite cuatro veces la alternativa 25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?, que limita cada número a 0-255. 192.168.1.50 coincide, 999.300.1.1 no. En cambio, no indica si la dirección es privada o pública.

¿La herramienta es realmente gratuita?

Sí, todas las herramientas en Kristools son 100% gratuitas y accesibles sin registro.

¿Están protegidos mis datos?

Sí. Todo el procesamiento se realiza de forma segura y directa en tu navegador. No se envían datos personales a nuestros servidores.