SITIO EN CONSTRUCCIÓN. Todo se ofrece TAL CUAL y SIN GARANTÍAS, en la medida en que la ley lo permita. Es información, no asesoría profesional. Úsalo bajo tu propia responsabilidad. Términos y límites de responsabilidad →

eThorns EN
← DesarrolloEN

Herramienta 5.14

Probador de regex: prueba expresiones regulares

Prueba expresiones regulares en vivo: coincidencias resaltadas, grupos de captura, banderas y errores claros. Los patrones que se cuelgan se frenan en 1 s.

Funciona en tu equipoFunciona completa en tu navegador: nada de lo que escribes o subes sale de tu equipo.

Cómo usarla

  1. Escribe tu patrón sin las barras y marca las banderas que necesites (g, i, m, s, u, y).
  2. Pega el texto de prueba: las coincidencias se resaltan mientras escribes.
  3. Revisa en la tabla la posición y los grupos de captura de cada coincidencia.

Probar un patrón antes de ponerlo en el código

Una expresión regular, o regex, es un patrón corto que describe un texto: "tres dígitos, un punto, tres dígitos", "una palabra seguida de @". Se usa para validar campos de formularios, sacar datos de registros, limpiar exportaciones y buscar y reemplazar en editores. Un error pequeño en el patrón hace que coincida de más o de menos, y eso es difícil de ver en el código.

Aquí escribes el patrón y un texto de prueba y ves cada coincidencia resaltada mientras escribes, con su posición y lo que captura cada grupo entre paréntesis. Todo corre en tu navegador; el patrón y el texto no se envían a ninguna parte.

Ejemplo: por qué `\w` no encuentra nombres en español

La página empieza con el patrón (\w+)@(?<domain>[\w.]+) y el texto Write to ana@example.com or luis@test.co. El resultado dice 2 coincidencias. En la tabla, la primera fila tiene Posición 9, la coincidencia ana@example.com, el grupo 1: ana y el grupo con nombre domain: example.com. La posición cuenta caracteres desde 0, así que 9 quiere decir que empieza en el décimo carácter.

Ahora cambia el texto por Escríbele a josé.pérez@correo.co. La coincidencia es solo rez@correo.co. En JavaScript, \w significa solo de la a a la z, de la A a la Z, dígitos y _, así que la é lo corta, y el punto tampoco está permitido en el primer grupo. Para texto en español, usa [\p{L}\p{N}._]+ con la bandera u: \p{L} significa cualquier letra, con o sin tilde, incluida la ñ.

Donde la prueba y la realidad no coinciden

Este es el motor de JavaScript de tu navegador. Python, PHP, Java y .NET comparten casi toda la sintaxis, pero no toda, así que vuelve a probar en el lenguaje donde va a correr el patrón. La herramienta solo encuentra coincidencias; no hace reemplazos.

Los anclajes lo cambian todo: sin ^ y $, una validación de celular colombiano como 3\d{9} también acepta un texto más largo que simplemente contenga esos diez dígitos. Y un patrón que funciona con tu ejemplo puede ser demasiado lento con un texto largo. Si el probador se detiene después de 1 segundo, simplifica el patrón antes de que congele una página o un servidor de verdad.

Preguntas frecuentes

¿Qué sabor de regex usa?

JavaScript (ECMAScript), con el motor de tu propio navegador. La mayoría de la sintaxis coincide con PCRE, Python y Java, pero cosas como los cuantificadores posesivos y algunas reglas de lookbehind cambian.

¿Por qué se detuvo después de 1 segundo?

Algunos patrones, como (a+)+$, pueden tardar un tiempo exponencial con ciertos textos (retroceso catastrófico). El probador los corre en un worker aparte y los detiene para que la página no se congele; ese mismo patrón podría colgar tu aplicación.

¿Por qué no coincide si pego /patrón/gi?

El campo recibe el patrón sin las barras, que ya aparecen dibujadas alrededor, y las banderas van en las casillas. Si pegas `/hola/gi`, el probador busca el texto literal `/hola/gi`, con barras y todo. Pega `hola` y marca g e i.

¿Qué significan las banderas g, i, m, s, u y y?

g encuentra todas las coincidencias en vez de la primera. i ignora mayúsculas y minúsculas. m hace que ^ y $ funcionen en cada línea. s deja que el punto incluya los saltos de línea. u activa Unicode completo, necesario para \p{L} y los emojis. y (sticky) solo busca justo donde terminó la coincidencia anterior.

¿Cómo encuentro precios escritos como $1.250.000?

Prueba `\$\d{1,3}(?:\.\d{3})*` con la bandera g. En `Total: $1.250.000 y envío $12.000` encuentra `$1.250.000` y `$12.000`. El punto se escapa como `\.` porque un punto sin escapar significa cualquier carácter.

  • 5.1Formateador JSONFormatea o minifica JSON y ubica el error por línea y columna.
  • 5.2Convertidor CSV y JSONConvierte CSV a JSON o JSON a CSV con coma, punto y coma o tabulación como separador.
  • 5.3Conversor YAML a JSONConvierte YAML a JSON y viceversa en tu navegador.
  • 5.4Base64Codifica o decodifica Base64 en tu navegador: texto UTF-8, Base64 apto para URL, archivos a Base64 o data URL, y Base64 de vuelta a un archivo descargable.
  • 5.5Contraste de colorMide el contraste entre el color del texto y el del fondo según WCAG 2.2 AA y AAA, para texto normal, texto grande y componentes.
  • 5.6Explicador de cronLee una expresión cron de 5 campos como una frase y ve sus próximas 5 ejecuciones en tu zona horaria.
  • 5.7Bases numéricasConvierte números enteros entre decimal, hexadecimal, binario y octal, con longitud en bits y dígitos agrupados.
  • 5.8Entidades HTMLCodifica texto como entidades HTML (con nombre, decimales o hex) o decodifícalas: <, >, &, comillas, tildes, ñ y símbolos Latin-1.
  • 5.9Codificar URLCodifica o decodifica URLs y valores de consulta (percent-encoding) y separa cualquier URL en protocolo, host, ruta, parámetros y fragmento.
  • 5.10Hash SHA-256Calcula hashes SHA-1, SHA-256, SHA-384 y SHA-512 de textos o archivos y verifica una descarga con su checksum.
  • 5.11Generador de UUIDGenera UUID v4 aleatorios o UUID v7 ordenados por tiempo (RFC 9562) en tu navegador, de 1 a 1000 a la vez, en mayúsculas o sin guiones.
  • 5.12Timestamp UnixConvierte timestamps Unix en segundos o milisegundos a ISO 8601, UTC y tu hora local, o una fecha a epoch.
  • 5.13Decodificador JWTDecodifica un JSON Web Token en tu navegador: mira el encabezado y el payload como JSON y si ya venció.

╌╌ FIN ╌╌