Más juegos en WuGames.ioPatrocinadoDescubre juegos de navegador gratis — juega al instante, sin descargas ni registro.Jugar

Generador de Regex

Constructor visual de regex + tester en vivo. 12 patrones predefinidos (email, URL, IPv4, tarjeta, fecha ISO), genera código JS/Python/PHP/Java/Ruby/Go.

Library Biblioteca de patrones
Builder Constructor de patrones
Escribe tu regex o selecciona un patron de la biblioteca
/pattern/flags
Components Componentes rapidos
Haz clic para insertar el componente en la posicion del cursor
Test Entrada de prueba
Usa $1, $2 o $para insertar grupos capturados

Generador Regex - Constructor visual y tester

Las expresiones regulares son el lenguaje universal de coincidencia de patrones, inventadas por el matemático Stephen Kleene en 1951 y presentes en casi toda herramienta de procesamiento de texto — grep, sed, awk, la biblioteca de cadenas de cada lenguaje de programación, toda base de datos con cláusula LIKE, cada framework de validación de formularios y la búsqueda y reemplazo de cualquier editor de código. Este constructor elimina los dos dolores principales al escribir regex a mano: olvidar la sintaxis exacta para clases de caracteres/cuantificadores/anclas y no estar nunca seguro de qué hace tu patrón hasta probarlo con cadenas reales. La biblioteca incluye 12 patrones listos para producción que cubren el 80% de los casos (email RFC 5322, URLs HTTP/HTTPS, teléfono EE.UU./internacional, IPv4, fecha ISO, hora 24h, nombres de usuario, contraseñas fuertes, colores hex, tarjetas de crédito, ZIP EE.UU., etiquetas HTML). Los Componentes Rápidos permiten insertar con un clic \d \w \s . ^ $ \b * + ? () [] | {n} {n,m} en su patrón en la posición del cursor — sin necesidad de memorizar la sintaxis. El tester en vivo ejecuta su patrón contra la entrada mientras escribe, resalta coincidencias, muestra grupos capturados y produce una explicación en lenguaje claro de cada componente. Cuando esté satisfecho, el botón Generar Código produce fragmentos idiomáticos para JavaScript, Python (módulo re), PHP (preg_match), Java (Pattern/Matcher), Ruby y Go (paquete regexp) — para pegar directamente en su proyecto.

¿Qué es una expresión regular?

Una expresión regular (regex) es un patrón de texto que permite buscar, validar y extraer información. Se usa para validar formularios, limpiar datos, analizar logs o automatizar búsquedas. Combina literales, clases de caracteres, cuantificadores, anclas y grupos. La sintaxis fue formalizada por Stephen Kleene en 1951 y luego implementada en Unix por Ken Thompson en 1968, desde entonces es el estándar de facto en grep, sed, awk, Perl y casi todo lenguaje moderno (JavaScript, Python, Java, .NET, Go). Aprender 8-10 metacaracteres (^ $ . * + ? \d \w \s [] {}) le da el 90% del poder del lenguaje.

¿Cómo sacar provecho del generador?

1) Seleccione un patrón base desde la biblioteca o empiece desde cero. 2) Use los componentes rápidos para insertar sintaxis sin memorizarla. 3) Ajuste los flags (g, i, m, s) según necesite coincidencias globales, multilínea o insensibles a mayúsculas. 4) Pruebe con textos reales y observe las coincidencias resaltadas y los grupos capturados. 5) Haga clic en "Explicar" para entender cada parte y en "Generar código" para copiar ejemplos en JavaScript, Python, PHP, Java, Ruby o Go.

Consejos rápidos para regex eficaces

- Prefiera patrones específicos en lugar de .* indiscriminado.
- Use grupos sin captura (?:) cuando no necesite almacenar valores.
- Ancle los patrones con ^ y $ cuando deban coincidir con toda la cadena.
- Evite cuantificadores anidados que puedan provocar backtracking excesivo.
- Pruebe con entradas grandes y casos extremos antes de usar en producción.

Generador de Regex — Constructor visual de regex + tester en vivo. 12 patrones predefinidos (email, URL, IPv4, tarjeta, fecha ISO), genera có
Generador de Regex

¿Por qué mi regex coincide con demasiado o muy poco? (Codicioso vs Perezoso)

Por defecto, todo cuantificador (* + ? {n,m}) en una regex es CODICIOSO (greedy) — captura tantos caracteres como pueda mientras el resto del patrón siga coincidiendo. La trampa clásica: contra la entrada '<b>foo</b><i>bar</i>', el patrón '<.*>' devuelve toda la cadena en lugar de solo '<b>'. La solución es hacer el cuantificador PEREZOSO (lazy) añadiendo ?: '<.*?>' devuelve '<b>' primero, luego '</b>', luego '<i>', luego '</i>' por separado. Regla práctica: cuando lo siguiente en su patrón es un carácter literal (como el > de cierre), use cuantificadores perezosos. Mejor aún, reemplace .* por una clase de caracteres negada — '<[^>]*>' es más rápido que '<.*?>' porque evita el backtracking por completo. Esta es también la causa #1 del 'backtracking catastrófico' que puede colgar un motor regex durante segundos sobre una entrada de 100 caracteres.

¿Cuál es la diferencia entre grupos de captura, sin captura y con nombre?

Los paréntesis en regex sirven para tres propósitos distintos que los principiantes suelen confundir.

(1) Grupo de captura: (\d{4}) — coincide Y guarda el texto coincidente para recuperarlo después vía $1/\1/match.groups[1]. Cada par de paréntesis simples crea un nuevo grupo numerado.

(2) Grupo sin captura: (?:\d{4}) — coincide pero NO guarda el resultado. Úselo cuando solo necesita los paréntesis para agrupar (por ejemplo, aplicar un cuantificador a varios caracteres o para alternancia como (?:cat|dog)s?). Omitir la captura tiene dos beneficios: salida más limpia y ejecución ligeramente más rápida.

(3) Grupo con nombre: (?<year>\d{4}) — captura y da al grupo un nombre significativo. Acceda vía match.groups.year (JS), m.group('year') (Python) o m['year'] (Ruby). Use grupos con nombre cuando su regex tenga 3+ capturas — '$1', '$2', '$3' se vuelven ilegibles rápido, pero '${year}-${month}-${day}' se autodocumenta. Soportado en JavaScript moderno (ES2018+), Python, Perl, PHP, Ruby, .NET.

¿Por qué el patrón de email de la biblioteca no coincide con todos los emails válidos?

Porque la gramática completa RFC 5322 para emails válidos supera los 6.000 caracteres de regex y es impráctica de usar. El patrón de la biblioteca '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$' es el compromiso pragmático estándar de la industria — acepta el 99%+ de las direcciones del mundo real rechazando las obviamente mal formadas (sin @, sin dominio, sin TLD). Lo que omite: patrones legítimos pero raros como partes locales entre comillas ('John Doe'@example.com), dominios con IP literal (user@[192.168.1.1]), nombres de dominio internacionalizados (user@münchen.de) y nuevos TLDs introducidos tras 2011. Lo que permite y técnicamente es inválido: un punto inicial ('[email protected]') y puntos consecutivos. Para producción, la única validación de email verdaderamente segura es enviar un correo de confirmación — cualquier regex es solo un filtro previo, no garantía. Use el patrón para rechazar erratas; verifique propiedad con un enlace de confirmación.

Funciones clave

  • Constructor visual con insercion de componentes
  • Biblioteca de patrones listos para usar
  • Pruebas en tiempo real con resaltado de coincidencias
  • Explicador paso a paso del patron
  • Soporte de flags g, i, m y s
  • Visualizacion de grupos capturados y posiciones
  • Generacion de codigo para JS, Python, PHP, Java, Ruby y Go
  • Resaltado de sintaxis y contador de coincidencias
  • Copiar o descargar el codigo generado
  • Procesamiento 100% local sin enviar datos
  • Interfaz responsiva con modo oscuro
  • Uso gratuito sin registro