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
- Escribe tu patrón sin las barras y marca las banderas que necesites (g, i, m, s, u, y).
- Pega el texto de prueba: las coincidencias se resaltan mientras escribes.
- 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.
Más en este capítulo
- 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 ╌╌