Saltar al contenido principal
Utilia

Probador de expresiones regulares

Escribe un patrón, marca las flags que necesites y pega un texto de prueba: verás cada coincidencia resaltada con su posición exacta y sus grupos de captura mientras tecleas. El motor es el RegExp propio de JavaScript, así que lo que aquí funciona, funciona igual en tu código.

Escribe solo la expresión: para una fecha tipo 2024-12-31 sería \d{4}-\d{2}-\d{2}.
Opciones (flags)
Se evalúan como máximo 50.000 caracteres. Un patrón con backtracking exponencial sobre un texto enorme puede congelar la pestaña: el límite mitiga el caso más común.

Escribe un patrón y un texto de prueba: los resultados se actualizan mientras tecleas.

Ejemplos listos para probar

Cada ejemplo rellena el patrón, las flags y un texto de prueba con resultados garantizados.

Posiciones: los índices son base 0 (inicio incluido, fin excluido) y «línea X, col Y» cuenta desde 1.

Todo se calcula en tu navegador: no enviamos tus datos a ningún servidor.

¿Qué es una expresión regular?

Una expresión regular (regex) es un patrón que describe un conjunto de textos: sirve para buscar, validar o extraer fragmentos sin escribir bucles a mano. En esta mini referencia tienes los tokens que cubren el 90 % de los casos del día a día.

TokenQué coincide
.Cualquier carácter, excepto el salto de línea (con la flag s, también lo incluye).
*El elemento anterior, cero o más veces.
+El elemento anterior, una o más veces.
?El elemento anterior, cero o una vez (es opcional).
[abc]Cualquiera de los caracteres entre corchetes; [a-z] define rangos.
(...)Grupo de captura: guarda por separado lo que coincide dentro.
a|bAlternativa: coincide «a» o «b».
\dUn dígito del 0 al 9.
\wLetra, dígito o guion bajo.
\sEspacio, tabulación o salto de línea.
{n,m}Entre n y m repeticiones del elemento anterior.

Cómo usar el probador, paso a paso

  • Escribe el patrón sin las barras /…/: en JavaScript se compila solo la expresión, no los delimitadores.
  • Marca las flags que necesites: la g viene activada porque lo normal es querer todas las coincidencias.
  • Pega o escribe el texto de prueba: el conteo, el resaltado y la lista de coincidencias se actualizan mientras tecleas.
  • Si el patrón no compila, verás el mensaje de error del navegador y el último resultado válido sigue en pantalla: corrige y sigue.
  • Copia los resultados en texto plano o comparte la URL, que guarda el patrón, las flags y el texto si no supera los 500 caracteres.

Las flags, una a una

  • g (global): recorre el texto entero y encuentra todas las coincidencias en orden; sin ella, la búsqueda se detiene en la primera.
  • i (ignore case): ignora mayúsculas y minúsculas, de modo que «CASA», «Casa» y «casa» equivalen para el patrón.
  • m (multiline): hace que ^ y $ coincidan al inicio y al final de cada línea, no solo del texto completo.
  • s (dotAll): permite que el punto (.) también coincida con saltos de línea.
  • u (unicode): activa el modo Unicode: habilita las clases \p{…}, como \p{L} para cualquier letra con acentos, y trata correctamente los caracteres fuera del plano básico, como los emojis.

Ejemplos prácticos (los mismos de los botones)

Cada ejemplo de la herramienta rellena el patrón, las flags y un texto de prueba donde hay coincidencias garantizadas. Estos son, tal cual:

  • Email: [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} con g encuentra «ana@example.com» y «soporte+utilia@mail.es».
  • URL: https?://[^\s]+ con g captura las dos direcciones del ejemplo, incluida la query ?clave=abc.
  • Fecha ISO: \d{4}-\d{2}-\d{2} con g encuentra 1990-05-21 y 2024-12-31.
  • Matrícula: \d{4}-[A-Z]{3} con g encuentra 1234-ABC y 9876-XYZ.
  • Teléfono: (?:\+34[ -]?)?[6789]\d{2}[ -]?\d{3}[ -]?\d{3} con g encuentra 612 345 678 y +34 911 223 344.
  • Código postal: (?:0[1-9]|[1-4]\d|5[0-2])\d{3} con g: los dos primeros dígitos van de 01 a 52, así que encuentra 28080 y 08013 pero no 99999.

Aviso honesto: JavaScript no permite interrumpir una expresión regular en marcha. Un patrón con backtracking exponencial (grupos con alternativas que comparten prefijo, cuantificadores anidados) puede congelar la pestaña con textos largos. El límite de 50.000 caracteres mitiga el caso más común, pero conviene probar primero con textos pequeños.

Preguntas frecuentes

¿Mis datos se envían a algún servidor?
No. La búsqueda la hace el motor RegExp de tu propio navegador: el patrón y el texto nunca salen de tu equipo. Por eso es una herramienta adecuada para probar patrones con datos privados.
¿Qué sabor de expresiones regulares usa?
JavaScript (ECMAScript), el mismo de la consola del navegador y de Node. Si vienes de Python, PCRE, grep o .NET, casi todo coincide, pero hay diferencias en construcciones avanzadas como los grupos de posesión.
¿Por qué mi regex del servidor no funciona igual aquí?
Lo más probable es que el sabor sea distinto. Cada lenguaje tiene su dialecto: aquí los grupos con nombre se escriben (?<nombre>…) y clases como \p{L} requieren la flag u. Si un patrón funciona en esta herramienta, funcionará en JavaScript; al llevarlo a otro lenguaje pueden aparecer matices.
¿Funcionan los acentos y la ñ?
Sí: un patrón literal como «canción» encuentra canción con todo y tilde. Para clases genéricas de letras, marca la flag u y usa \p{L}, que incluye á, é, ñ o ü, y también letras de otros alfabetos como el griego o el cirílico.
¿Puedo pegar textos muy largos?
Hasta 50.000 caracteres, el límite pensado para que un patrón complejo no congele la pestaña. Si el texto lo supera, se evalúa solo el principio y se te avisa. El resaltado se limita además a los primeros 10.000 caracteres, aunque el conteo del chip sigue siendo completo.

Continúa donde lo dejaste con estas utilidades que combinan bien con esta.