Regex Tester

Probador de Regex

Crea y prueba expresiones regulares con resaltado de coincidencias en vivo, grupos de captura y modo reemplazo. Sabor JavaScript, se ejecuta totalmente en tu navegador.

regex de JavaScript / ECMAScript (el mismo motor que tu navegador usa para el RegExp nativo). Es un superconjunto estricto de POSIX y se solapa mucho con Python re, Java Pattern y PCRE en las características comunes. Diferencias a tener en cuenta: JavaScript admite lookahead/lookbehind, grupos con nombre (mediante /(?...)/) y las flags /u y /y. NO admite cuantificadores posesivos (a++, a*+), grupos atómicos ((?>...)) ni grupos branch-reset — esos son exclusivos de PCRE.

No. Toda la herramienta es JavaScript dentro de esta página. La compilación del patrón, la coincidencia y el reemplazo se ejecutan en tu navegador mediante el constructor RegExp nativo. Abre DevTools → Network y observa: no se dispara ninguna petición mientras escribes. Seguro para pegar regex que coincidan con logs de producción, correos de clientes o cualquier cosa que no querrías que un servidor registrara.

/ /
Coincidencias
Explicación
Chuleta de regex
. Cualquier carácter (excepto salto de línea; con la flag /s, también salto de línea)
\d Cualquier dígito (0-9)
\D Cualquier no dígito
\w Carácter de palabra (a-z, A-Z, 0-9, _)
\W Carácter que no es de palabra
\s Espacio en blanco (espacio, tabulación, salto de línea)
\S Que no sea espacio en blanco
\b Límite de palabra
^ $ Inicio / fin de cadena (o de línea, con la flag /m)
* Cero o más del elemento anterior
+ Uno o más del elemento anterior
? Cero o uno del elemento anterior (opcional)
{n,m} Entre n y m del elemento anterior
(...) capture group — guardado en $1, $2, …
(?:...) Grupo sin captura — útil para alternancia sin capturar
(?<n>...) capture group con nombre — referenciado como $<n>
[abc] Clase de caracteres — cualquiera de a, b o c
[^abc] Clase de caracteres negada — cualquier carácter excepto a, b, c
a|b Alternancia — coincide con a o b
(?=...) lookahead positivo — seguido de
(?!...) lookahead negativo — no seguido de
(?<=...) lookbehind positivo — precedido de
(?<!...) lookbehind negativo — no precedido de
$1 $<n> backreference en cadena de reemplazo — numerada o con nombre

Por qué iKit Regex Tester

Diseñado para desarrolladores que quieren un playground de regex limpio y rápido, sin los anuncios, popups o rastreadores de terceros de las herramientas heredadas.

Resaltado de coincidencias en vivo

Escribe tu patrón y verás cada coincidencia resaltada en la cadena de prueba en tiempo real. Los capture group se listan junto con su rango de índice y contenido.

Coincidir y reemplazar en una sola herramienta

Cambia al modo Reemplazar para previsualizar el resultado de String.replace, con soporte completo para backreference numeradas $1/$2, grupos con nombre $ y $& para toda la coincidencia.

Las seis flags de JavaScript

Activa global, case-insensitive, multilínea, dotall, unicode y sticky como chips — las mismas flags que el RegExp nativo, sin sorpresas al portar tu patrón al código.

Predefinidos de patrones comunes

Predefinidos de un clic para correo, URL, IPv4, teléfono, fecha, color hexadecimal y UUID — cada uno con una cadena de prueba de muestra para que veas exactamente con qué coinciden.

Chuleta integrada

Cuadrícula de referencia rápida para clases de caracteres, cuantificadores, anclas, grupos y lookarounds — plegable, así está cuando la necesites y oculta cuando no.

Privacidad por diseño

El patrón, la cadena de prueba y el reemplazo se quedan en tu navegador. Verificable en DevTools → Network: cero peticiones mientras escribes. Seguro para logs de producción y datos de clientes.

Cómo funciona realmente la coincidencia de regex

Las expresiones regulares parecen ruido visual, pero el motor que hay detrás es directo.

  1. 1

    Compilar el patrón

    Cuando escribes /foo/ en JavaScript o llamas a new RegExp('foo'), el motor analiza tu patrón y lo convierte en un autómata interno — una máquina de estados que sabe recorrer el texto de entrada. La compilación se hace una sola vez; la coincidencia es rápida.

  2. 2

    Recorrer la cadena de entrada

    El motor mueve un cursor a través de tu cadena de prueba. En cada posición, intenta seguir el camino del autómata. Un carácter que satisface el estado actual avanza ambos cursores; un fallo retrocede a un punto de decisión anterior y prueba otra rama.

  3. 3

    Capture groups

    Los paréntesis en el patrón abren un capture group: cuando el motor coincide con éxito dentro de ellos, recuerda lo que se ha capturado, indexado como $1, $2, etc. Los grupos con nombre (?<n>...) se almacenan bajo un nombre. Estas capturas aparecen en el campo groups del objeto de coincidencia.

  4. 4

    Reemplazar con backreferences

    String.replace(regex, replacement) recorre las mismas coincidencias, pero en lugar de devolverlas, inserta la cadena de reemplazo. $1 en el reemplazo es el valor literal capturado por el grupo 1 — así puedes reformatear 2024-01-15 a 15/01/2024 con una sola regex.

Tareas habituales con regex

Situaciones reales en las que recurrirás a un probador de regex.

Validar formatos de correo o URL

Construye un patrón en el probador, pega entradas de muestra (las reales y los casos límite) y mira exactamente qué coincide antes de llevarlo a la validación de tu formulario. Los predefinidos te dan un punto de partida razonable que cubre el 95% de las entradas del mundo real.

Limpiar datos de logs

¿Tienes un archivo de log con marcas de tiempo mezcladas, códigos de color ANSI y direcciones IP que quieres anonimizar? Usa el modo Reemplazar con un patrón como \b(?:\d{1,3}\.){3}\d{1,3}\b y el reemplazo [REDACTED] — previsualiza el resultado antes de pasarlo por sed sobre el archivo real.

Refactorizar código con buscar y reemplazar por regex

El buscar y reemplazar de tu IDE admite regex, pero no te muestra una previsualización en vivo sobre múltiples casos de prueba. Construye el patrón aquí primero con líneas de muestra de tu código, verifica las capturas y el reemplazo, y luego pega la regex que funciona en VS Code / IntelliJ.

Extraer datos estructurados

¿Necesitas extraer todas las direcciones de correo de un volcado de contactos, o cada importe en dólares de un recibo? Construye la regex de coincidencia en iKit, cópiala en un script de una línea (text.matchAll(re)) y habrás convertido una tarea de parseo improvisada en diez líneas de código.

Por qué importa probar regex en local

Los patrones de regex suelen codificar información sensible: la estructura de los IDs de cliente, endpoints internos de API, reglas de contraseñas o campos de PII que intentas anonimizar. Pegarlos en una herramienta del lado del servidor — y pegar datos reales de prueba junto a ellos — filtra tanto el patrón como las entradas. El probador de regex de iKit es JavaScript ya cargado en la pestaña de tu navegador.

  • Cero peticiones de red durante la coincidencia o el reemplazo — verificable en DevTools.
  • Patrones y cadenas de prueba se quedan en la memoria del navegador; se borran al pulsar Limpiar o al refrescar la página.
  • Seguro para patrones de anonimización de logs de producción, validación de datos de clientes y regex sensibles a la seguridad.

Guías relacionadas

Tutoriales en profundidad y comparativas de herramientas del blog de iKit.

Preguntas frecuentes

¿Qué sabor de regex admite?

regex de JavaScript / ECMAScript (el mismo motor que tu navegador usa para el RegExp nativo). Es un superconjunto estricto de POSIX y se solapa mucho con Python re, Java Pattern y PCRE en las características comunes. Diferencias a tener en cuenta: JavaScript admite lookahead/lookbehind, grupos con nombre (mediante /(?...)/) y las flags /u y /y. NO admite cuantificadores posesivos (a++, a*+), grupos atómicos ((?>...)) ni grupos branch-reset — esos son exclusivos de PCRE.

¿Se suben mis patrones o cadenas de prueba a algún sitio?

No. Toda la herramienta es JavaScript dentro de esta página. La compilación del patrón, la coincidencia y el reemplazo se ejecutan en tu navegador mediante el constructor RegExp nativo. Abre DevTools → Network y observa: no se dispara ninguna petición mientras escribes. Seguro para pegar regex que coincidan con logs de producción, correos de clientes o cualquier cosa que no querrías que un servidor registrara.

¿Cuál es la diferencia entre $1 y $<name> en reemplazo?

Ambas son backreference en la cadena de reemplazo. $1, $2, … hacen referencia a capture group numerados en el orden en que aparecen en el patrón — (foo)(bar) hace que $1 = 'foo', $2 = 'bar'. $ hace referencia a un capture group con nombre declarado como (?...) — es más legible y sobrevive a la reordenación de grupos en el patrón. JavaScript también tiene $& (toda la coincidencia), $` (texto antes de la coincidencia) y $' (texto después de la coincidencia).

¿Por qué no funciona mi lookbehind?

Los lookbehind (?<=...) y (?

¿Cómo coincido con emoji, caracteres acentuados o escrituras no latinas?

Activa el flag /u (unicode) y luego usa Unicode property escapes dentro de tu pattern. `\p{L}` coincide con cualquier letra — incluidas ñ, é, 中, ก, ا. `\p{N}` coincide con cualquier dígito, incluidos numerales no latinos como ٠-٩. `\p{Emoji}` coincide con code points de emoji. Sin /u, el mismo pattern falla silenciosamente con emoji de surrogate pair (cualquier cosa fuera del BMP) y trata los caracteres acentuados como base + combining marks separados. El flag /u le dice al motor que interprete tu entrada como Unicode code points, no como UTF-16 code units en bruto — así que la mayoría de los bugs de regex multilingües desaparecen con un solo interruptor.