Tester de Expresiones Regulares
Prueba y depura expresiones regulares con resaltado de coincidencias en tiempo real. Compatible con todos los flags de JavaScript.
¿Qué es una expresión regular?
Una expresión regular (regex o regexp) es un patrón que describe un conjunto de cadenas de texto. Se usa para buscar, validar, extraer y transformar texto de forma eficiente. Por ejemplo, el patrón \b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b con el flag i identifica direcciones de correo electrónico dentro de cualquier texto. Las expresiones regulares están disponibles en prácticamente todos los lenguajes de programación modernos: JavaScript, Python, Java, Go, Rust, PHP y muchos más.
Esta herramienta utiliza el motor de regex de JavaScript (ECMAScript), que implementa la mayor parte de la sintaxis estándar más extensiones como named capture groups, lookbehind assertions y el flag s (dotAll). Los patrones escritos aquí funcionarán directamente en código JavaScript/TypeScript, Node.js y navegadores modernos.
Flags disponibles y su significado
Los flags modifican el comportamiento de la expresión regular:
g— global: encuentra todas las coincidencias, no solo la primera.i— insensitive: ignora diferencias entre mayúsculas y minúsculas.m— multiline: hace que^y$coincidan con el inicio y fin de cada línea, no solo del string completo.s— dotAll: permite que el punto.coincida con saltos de línea (\n).u— unicode: activa el modo Unicode completo para caracteres fuera del plano básico.y— sticky: la búsqueda se ancla a la posiciónlastIndexdel objeto RegExp.
Elementos de sintaxis más usados
.— cualquier carácter excepto salto de línea (cons, incluye saltos).\d/\D— dígito / no dígito.\w/\W— carácter de palabra (letra, dígito, guión bajo) / no palabra.\s/\S— espacio en blanco / no espacio.^/$— inicio / fin del string (o línea con flagm).*,+,?— cero o más, uno o más, cero o uno (cuantificadores codiciosos).{n,m}— entre n y m repeticiones.[abc]— clase de caracteres: a, b o c.[^abc]— cualquier carácter excepto a, b, c.(abc)— grupo de captura.(?:abc)— grupo sin captura.(?=abc)/(?!abc)— lookahead positivo / negativo.(?<=abc)/(?<!abc)— lookbehind positivo / negativo.a|b— alternativa: a o b.
Patrones comunes listos para usar
- Email:
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} - URL:
https?://[^\s/$.?#].[^\s]* - Número de teléfono (ES):
(?:(?:\+|00)34)?[6789]\d{8} - Fecha (DD/MM/YYYY):
(0[1-9]|[12]\d|3[01])/(0[1-9]|1[0-2])/\d{4} - IP v4:
(?:\d{1,3}\.){3}\d{1,3} - Código postal español:
(?:0[1-9]|[1-4]\d|5[0-2])\d{3}
Preguntas frecuentes
¿Los patrones de esta herramienta funcionan en Python o PHP?
La mayor parte de la sintaxis básica (clases de caracteres, cuantificadores, grupos) es compatible entre motores. Sin embargo, hay diferencias: Python usa re con su propia sintaxis de flags; PHP usa el motor PCRE. Siempre verifica los patrones en el entorno de destino antes de usarlos en producción.
¿Qué significa que una regex sea "codiciosa"?
Los cuantificadores *, + y {n,m} son codiciosos por defecto: intentan coincidir con el mayor número posible de caracteres. Añadir ? los convierte en perezosos (lazy), haciendo que coincidan con el mínimo posible. Por ejemplo, <.+> coincide con el tag completo <b>texto</b>, mientras que <.+?> solo coincide con <b>.
¿Esta herramienta almacena mis patrones?
Para esta herramienta compatible, el procesamiento local se usa siempre que sea posible.