Saltar al contenido
Quaestio

Probador de regex

Escribe un patrón y un texto con el que probarlo, y cada coincidencia se resalta mientras escribes.

Modificadores

Ejemplos

Usa $1 o $<name> para los grupos, $& para la coincidencia completa y $$ para un signo de dólar.

Elementos habituales
.
cualquier carácter excepto un salto de línea
\d
un dígito 0–9
\w
una letra a–z, un dígito o un guion bajo
\s
espacio, tabulación o salto de línea
\D \W \S
lo contrario de \d, \w y \s
\b
límite entre un carácter de palabra y otro que no lo es
^
inicio del texto, o de la línea con m
$
final del texto, o de la línea con m
[abc] [a-z]
uno de los caracteres, o un carácter del rango
[^abc]
ninguno de los caracteres
a|b
a o b
(…)
grupo de captura
(?:…)
grupo sin captura
(?<name>…)
grupo con nombre
\1 \k<name>
el mismo texto que el grupo 1 o que el grupo llamado name
*
cero o más veces
+
una o más veces
?
cero o una vez
{3} {2,5} {2,}
exactamente 3 veces, de 2 a 5 veces o al menos 2 veces
*? +? ??
el menor número de veces posible
(?=…)
seguido de
(?!…)
no seguido de
(?<=…) (?<!…)
precedido de, no precedido de
\p{L}
una letra de cualquier escritura (requiere u o v)
Insertar

Inserta esta herramienta en tu sitio

Copia el código y pégalo donde quieras que aparezca la herramienta, por ejemplo en una entrada de blog o en la página de una escuela. Es gratis, el recuadro no tiene anuncios y la herramienta calcula en el navegador de quien la usa.

Cómo funciona

Una expresión regular es un patrón que describe texto. \d+ significa uno o más dígitos, [a-z] una letra de la a a la z y ^ el inicio del texto. El patrón se prueba sobre el texto de izquierda a derecha, y cada lugar donde encaja es una coincidencia.

El probador usa el motor de tu navegador, es decir, la variante de expresiones regulares definida en el estándar ECMAScript para JavaScript. Se diferencia de PCRE, Python y .NET en algunos aspectos: por ejemplo, no hay cuantificadores posesivos ni grupos atómicos, y el lookbehind puede tener cualquier longitud.

Los modificadores cambian cómo se lee el patrón. g encuentra todas las coincidencias y no solo la primera, i ignora la diferencia entre mayúsculas y minúsculas, m hace que ^ y $ se apliquen a cada línea y s permite que el punto coincida con los saltos de línea. u lee el texto como caracteres Unicode en lugar de unidades UTF-16, y v es una versión más estricta de u de ECMAScript 2024 con operaciones de conjuntos en las clases de caracteres. y exige que cada coincidencia empiece justo donde terminó la anterior, y d registra las posiciones de los grupos.

Los paréntesis capturan lo que han encontrado y se numeran por su paréntesis de apertura, desde la izquierda. (?<name>…) da nombre a un grupo, y (?:…) agrupa sin capturar. En el reemplazo, $1 representa el grupo 1, $<name> un grupo con nombre, $& la coincidencia completa y $$ un signo de dólar. Sin el modificador g solo se reemplaza la primera coincidencia.

Algunos patrones tardan muchísimo, como (a+)+$ frente a una larga serie de a seguida de otro carácter. El motor prueba entonces combinaciones cuyo número crece exponencialmente con la longitud del texto, lo que se conoce como backtracking catastrófico. Aquí la búsqueda se ejecuta en un hilo aparte que se detiene a los dos segundos, para que la página no se congele. En un programa en un servidor, el mismo patrón puede convertirse en un riesgo de seguridad (ReDoS).

Las posiciones se cuentan en unidades UTF-16, como en JavaScript, así que un emoji cuenta como dos. Una coincidencia vacía, como ^ o \b, se marca con una línea fina. Tu texto nunca sale de tu navegador.

Fuentes

Cómo se verifican las herramientas