Saltar al contenido
Case Converter Online
es

Probar expresiones regulares (regex)

Escribe una expresión regular y un texto de prueba para ver cada coincidencia resaltada mientras escribes. Revisa los grupos de captura y prueba un buscar y reemplazar antes de usarlo en tu código.

Flags

Coincidencias

0

Escribe un patrón para ver las coincidencias.

Detalles de coincidencias y grupos

Usa $1 o $<nombre> para los grupos y $& para la coincidencia completa.

Qué hace un tester de expresiones regulares

Una expresión regular, o regex, es un pequeño lenguaje de patrones para buscar texto. \d{4} significa “cuatro dígitos seguidos”. [\w.+-]+@ significa “uno o más caracteres de palabra, puntos, signos más o guiones, seguidos de una @”. Las regex se usan para buscar y reemplazar en editores de código, validar formularios, analizar registros y limpiar datos.

Es fácil equivocarse un poco al escribir un patrón. Un tester te deja probar expresiones regulares con un texto de ejemplo real y ver exactamente qué capturan antes de ponerlas en un script. Este muestra las coincidencias mientras escribes, lista cada grupo de captura y te enseña una vista previa del reemplazo.

Cómo usar el tester de regex

  1. Escribe tu patrón en Expresión regular, sin las barras. La herramienta las muestra por ti, con los flags activos después de la barra de cierre.
  2. Activa o desactiva los flags con los botones g, i, m, s, u e y.
  3. Pega o escribe un texto de ejemplo en Texto de prueba.
  4. Mira el resultado en Coincidencias. Cada coincidencia aparece resaltada y el contador indica cuántas se encontraron.
  5. Revisa Detalles de coincidencias y grupos para ver la posición de cada coincidencia y el texto que captura cada grupo.
  6. Para probar un buscar y reemplazar, escribe en Reemplazar con. El texto modificado aparece en Resultado, listo para copiar.

¿No sabes por dónde empezar? Elige una opción en Patrones comunes. Hay patrones para direcciones de correo, direcciones web, fechas, direcciones IPv4, colores hexadecimales, números de teléfono, números y espacios dobles.

Los flags

Flag Nombre Qué cambia
g global Encuentra todas las coincidencias, no solo la primera
i ignore case (ignorar mayúsculas y minúsculas) hello también coincide con Hello y HELLO
m multiline (multilínea) ^ y $ coinciden al principio y al final de cada línea
s dot all . también coincide con un salto de línea
u unicode Lee un emoji como un solo carácter y permite las clases \p{...}
y sticky Cada coincidencia debe empezar justo donde terminó la anterior

Ejemplos

Estos resultados salen de ejecutar los patrones en esta herramienta.

Patrón Flags Texto Coincidencias
\d+ ninguno a1 b22 c333 1
\d+ g a1 b22 c333 1, 22, 333
hello gi Hello hello HELLO Hello, hello, HELLO
^\w+ gm dos líneas: one two y three four one, three
a.b g a, salto de línea, b ninguna
a.b gs a, salto de línea, b una

La página se carga con un ejemplo de fechas. El patrón (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) encuentra tres fechas en el texto de ejemplo: 2026-10-31, 2024-01-15 y 2026-11-02. El reemplazo $<day>/$<month>/$<year> convierte la primera en 31/10/2026, el orden día/mes/año que se usa en español.

El reemplazo también es útil para limpiar texto. El patrón \s{2,} con un solo espacio como reemplazo convierte too many spaces en too many spaces.

Ojo con la ñ y las tildes. En JavaScript, \w solo equivale a [A-Za-z0-9_], también con el flag u. En el texto El año de la canción, el patrón \w+ con g encuentra El, a, o, de, la, canci y n: corta las palabras en la ñ y en la ó. Para palabras en español, usa \p{L}+ con los flags g y u, que encuentra El, año, de, la y canción, o una clase explícita como [a-záéíóúüñ]+ con los flags g e i. El flag i sí trata la ñ y la Ñ, o la á y la Á, como la misma letra. Por el mismo motivo, \b no considera la ñ ni las vocales con tilde como parte de una palabra. En Python 3 es distinto: allí \w sí incluye la ñ y las letras con tilde.

Cómo funciona

El tester crea un RegExp de JavaScript con tu patrón y tus flags, y lo ejecuta sobre el texto de prueba. Con el flag g sigue buscando hasta el final. También salta las coincidencias vacías, para que un patrón como x* no se quede en un bucle infinito.

El texto se escapa antes de resaltarlo. Cualquier HTML o script que haya en tu texto de ejemplo se muestra como caracteres normales y nunca se ejecuta.

La búsqueda se hace en un Web Worker, un hilo en segundo plano. Si un patrón tarda más de 1 segundo, el worker se detiene y se inicia uno nuevo. Ves un mensaje en lugar de una pestaña congelada.

Si un patrón no es válido, verás el mensaje de error del navegador, normalmente en inglés. Por ejemplo, un ( suelto da “Unterminated group” (grupo sin cerrar).

Consejos y límites

  • Cuidado con las repeticiones anidadas. Patrones como (a+)+$ o (\w+\s?)*$ pueden tardar muchísimo en un texto que casi coincide. Es lo que se llama backtracking catastrófico. Haz que cada parte coincida con algo concreto y evita una repetición dentro de otra.
  • Escapa los caracteres especiales. Para buscar un punto real, escribe \.. Lo mismo vale para ? * + ( ) [ ] { } ^ $ | y para la propia barra invertida.
  • Ancla los patrones de validación. Para un campo de formulario, rodea el patrón con ^ y $ para que tenga que coincidir el valor completo y no solo una parte.
  • Una regex no es un analizador completo. Sirve para detectar correos o fechas en un texto. No es una forma fiable de analizar HTML ni de comprobar que una dirección de correo existe de verdad.
  • Los resultados muy grandes se limitan. La herramienta lista hasta 5.000 coincidencias y muestra las 300 primeras filas en la tabla de detalles.

Otras formas de probar una regex

En la línea de comandos, grep -oE muestra cada coincidencia en su propia línea:

echo 'Call 555-010-9999 on 2026-10-31' | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}'

Eso muestra 2026-10-31. En Python, re.findall(r'\d{4}-\d{2}-\d{2}', 'from 2026-10-31 to 2024-01-15') devuelve ['2026-10-31', '2024-01-15']. En JavaScript, usa text.match(/pattern/g), o text.matchAll() si necesitas los grupos.

Herramientas relacionadas

Para preparar títulos para direcciones web, usa el generador de slugs. Para que un texto sea seguro dentro de un enlace, usa la herramienta para codificar y decodificar URL.

Tester de regex: preguntas y respuestas

¿Qué variante de regex usa este tester?

Usa el motor de JavaScript integrado en tu navegador, así que los resultados coinciden con los de RegExp en JavaScript y Node.js. La mayoría de los patrones sencillos se comportan igual en Python, PHP y Java, pero funciones como el lookbehind, los grupos con nombre y las clases Unicode pueden variar un poco entre lenguajes.

¿Por qué solo veo una coincidencia?

El flag g está desactivado. Sin él, una regex de JavaScript se detiene después de la primera coincidencia. Pulsa el botón g para encontrar todas las coincidencias del texto de prueba.

¿Qué significa que el tester se detuvo después de 1 segundo?

Tu patrón tardó demasiado con ese texto, lo que suele indicar un backtracking catastrófico. Las repeticiones anidadas, como (a+)+ o (.*)*, pueden obligar al motor a probar una cantidad enorme de caminos. El tester ejecuta la búsqueda en un worker en segundo plano y lo detiene para que la página no se congele. Haz las repeticiones más específicas y vuelve a probar.

¿Cómo uso un grupo de captura en el reemplazo?

Escribe $1, $2, etc. para los grupos numerados, $<nombre> para un grupo con nombre y $& para toda la coincidencia. Por ejemplo, el patrón (\w+)@(\w+) con el reemplazo $2 at $1 convierte a@b c@d en b at a d at c.

¿Se envía mi texto de prueba a algún sitio?

No. La búsqueda se hace en tu navegador. Nada de lo que escribes se sube ni se guarda.

Más herramientas de código y datos

Ver todas las herramientas