Publicidad

Regex Builder: Expresiones Regulares

Construye y prueba regex con resaltado de coincidencias en tiempo real.

//gm
¿Te ha servido esta herramienta?

¿Automatizas procesos de datos?

Herramientas inteligentes para tu equipo

Ver OCC →

¿Que es una expresion regular (regex)?

Una expresion regular (regular expression o regex) es un patron de texto que define un conjunto de cadenas que coinciden con ciertas reglas. Las expresiones regulares son una de las herramientas mas poderosas en el arsenal de cualquier desarrollador: permiten buscar, validar, extraer y reemplazar texto con una precision imposible de lograr con funciones de busqueda simples. Fueron formalizadas matematicamente por el matematico Stephen Kleene en los anos 1950 y se implementaron por primera vez en editores de texto Unix como ed y grep en los anos 1970.

Nuestra herramienta te permite construir y probar expresiones regulares de forma visual e interactiva. Escribe tu patron regex, pega el texto de prueba, y ve en tiempo real las coincidencias resaltadas con colores. La herramienta muestra el numero de coincidencias, la posicion de cada una, y los grupos de captura si tu patron los incluye. Tambien incluye una referencia rapida de metacaracteres y 10 presets comunes para patrones que se usan frecuentemente (email, URL, telefono, IP, fecha, color hexadecimal, DNI/NIE, codigo postal).

Sintaxis basica de expresiones regulares

Los metacaracteres son los bloques fundamentales de cualquier expresion regular. El punto (.) coincide con cualquier caracter excepto el salto de linea. Los cuantificadores controlan cuantas veces debe repetirse un elemento: el asterisco (*) significa 0 o mas veces, el mas (+) significa 1 o mas veces, y la interrogacion (?) significa 0 o 1 vez (opcional). Los cuantificadores con llaves permiten especificar cantidades exactas: {3} significa exactamente 3 veces, {2,5} significa entre 2 y 5 veces, y {3,} significa 3 o mas veces.

Las clases de caracteres definen conjuntos de caracteres aceptables. Los corchetes [abc] coinciden con cualquiera de los caracteres listados. Los rangos [a-z] coinciden con cualquier caracter en el rango especificado. El acento circunflejo dentro de corchetes [^abc] niega la clase: coincide con cualquier caracter que NO este en el conjunto. Las clases predefinidas incluyen \d (cualquier digito, equivalente a [0-9]), \w (cualquier caracter alfanumerico o guion bajo, equivalente a [a-zA-Z0-9_]), \s (cualquier espacio en blanco, incluyendo tabulaciones y saltos de linea), y sus versiones negadas \D, \W y \S.

Los anclas definen posiciones en el texto sin consumir caracteres: el acento circunflejo (^) coincide con el inicio de linea y el signo de dolar ($) con el final. El limite de palabra (\b) coincide con la posicion entre un caracter de palabra y uno que no lo es, util para buscar palabras completas. Los grupos de captura con parentesis () agrupan partes del patron y capturan el texto coincidente para referencia posterior. La alternancia con barra vertical (|) funciona como un OR logico: gato|perro coincide con "gato" o "perro".

Presets comunes incluidos en la herramienta

Nuestra herramienta incluye 10 presets de expresiones regulares para los patrones mas utilizados en desarrollo web y procesamiento de datos. El preset de email valida direcciones de correo electronico con el patron [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}, que acepta la mayoria de formatos de email validos segun el RFC 5322. El preset de URL detecta URLs con protocolo HTTP o HTTPS seguido de un nombre de dominio con extension.

Los presets de telefono incluyen patrones para numeros espanoles (con o sin prefijo +34 o 0034, comenzando por 6, 7, 8 o 9 seguido de 8 digitos) y mexicanos (con o sin prefijo +52, seguido de 10 digitos). El preset de IPv4 valida direcciones IP con cuatro octetos entre 0 y 255. Los presets de fecha incluyen formato ISO (YYYY-MM-DD) y formato espanol (DD/MM/YYYY), ambos con validacion de rangos de meses y dias.

El preset de color hexadecimal detecta codigos de color CSS en formato #RGB o #RRGGBB. El preset de DNI/NIE valida documentos de identidad espanoles: 8 digitos seguidos de una letra para DNI, o una letra (X, Y, Z) seguida de 7 digitos y una letra para NIE. El preset de codigo postal espanol acepta codigos de 5 digitos donde los dos primeros digitos estan entre 01 y 52 (las provincias espanolas). Cada preset incluye texto de ejemplo para probar, con casos validos e invalidos.

Flags (modificadores) y su efecto

Las expresiones regulares soportan flags o modificadores que alteran el comportamiento de la busqueda. Nuestra herramienta permite activar y desactivar tres flags principales. El flag global (g) hace que la busqueda encuentre todas las coincidencias en el texto, no solo la primera. Sin este flag, la regex se detiene despues de la primera coincidencia encontrada. En la mayoria de casos practicos, querras tener este flag activado.

El flag case-insensitive (i) hace que la busqueda ignore las diferencias entre mayusculas y minusculas. Con este flag, [a-z] coincide tambien con A-Z, y la palabra "Hola" coincide con "hola", "HOLA" o "HoLa". Es util para buscar palabras sin importar como las escribio el usuario. El flag multilinea (m) cambia el comportamiento de los anclas ^ y $: en lugar de coincidir solo con el inicio y fin del texto completo, coinciden con el inicio y fin de cada linea individual. Esto es esencial cuando tu texto de prueba tiene multiples lineas y quieres aplicar el patron a cada una.

Casos de uso profesionales de regex

Validacion de formularios: Las expresiones regulares son la base de la validacion de datos en formularios web. Validan emails, telefonos, codigos postales, DNI/NIE, tarjetas de credito, URLs, y cualquier formato de dato que siga un patron definido. Aunque HTML5 incluye validacion nativa para algunos tipos, las regex permiten validaciones mucho mas especificas y personalizadas tanto en frontend como en backend.

Procesamiento de logs: Los equipos de DevOps y SRE utilizan expresiones regulares constantemente para parsear logs de servidores, aplicaciones y servicios cloud. Un regex puede extraer timestamps, niveles de error, IPs de origen, endpoints consultados, y tiempos de respuesta de lineas de log con formatos complejos. Herramientas como grep, awk, y las funciones de busqueda de editores como VS Code dependen de regex para filtrar informacion relevante.

Limpieza y transformacion de datos: En data engineering y ciencia de datos, las expresiones regulares se usan para limpiar datasets: eliminar caracteres no deseados, extraer numeros de cadenas mixtas, normalizar formatos de fecha, unificar formatos de telefono, y validar la integridad de campos antes de procesarlos. Lenguajes como Python (modulo re), JavaScript (RegExp), y herramientas como pandas soportan regex nativamente.

Redirecciones web y .htaccess: Los especialistas en SEO y administradores web usan expresiones regulares en archivos .htaccess, configuraciones de Nginx, y reglas de redireccion de CDNs para redirigir patrones de URLs antiguas a nuevas estructuras. Un regex puede capturar el ID de un producto de la URL antigua y redirigirlo a la nueva URL con la misma ID, procesando miles de URLs con una sola regla.

Busqueda y reemplazo avanzado: Todos los editores de codigo modernos (VS Code, Sublime Text, IntelliJ, Vim) soportan busqueda y reemplazo con regex. Esto permite refactorizaciones masivas como renombrar funciones que siguen un patron, actualizar imports, cambiar formatos de fecha en archivos de configuracion, o transformar estructuras de datos. Con grupos de captura y referencias posteriores, puedes reorganizar partes del texto encontrado.

¿Para quien es util el regex builder?

Desarrolladores de software: Construye y prueba expresiones regulares para validacion de formularios, parseo de texto, busqueda avanzada, y procesamiento de strings antes de integrarlas en tu codigo. La herramienta te permite iterar rapidamente sobre tu patron sin necesidad de ejecutar tu aplicacion completa.

DevOps e ingenieros de infraestructura: Crea patrones para filtrar logs, configurar alertas basadas en patrones de texto, escribir reglas de redireccion en Nginx/Apache, y parsear outputs de comandos CLI. Prueba tus regex contra ejemplos reales de logs antes de desplegarlos en produccion.

SEOs y marketing digital: Configura patrones de redireccion para migraciones de URL, filtra datos en Google Analytics con expresiones regulares, crea reglas de segmentacion basadas en patrones de URL, y extrae datos de textos con formatos especificos.

Data engineers y cientificos de datos: Construye patrones para limpiar y transformar datasets. Valida formatos de datos antes del procesamiento. Extrae informacion estructurada de textos no estructurados. Normaliza campos como telefonos, fechas y direcciones.

Testers y QA: Crea assertions basadas en patrones para tests automatizados. Valida que las respuestas de APIs siguen los formatos esperados. Genera datos de prueba que cumplan con patrones especificos. Verifica que las validaciones de formularios aceptan y rechazan los casos correctos.

Buenas practicas al escribir expresiones regulares

Las expresiones regulares pueden volverse rapidamente ilegibles y dificiles de mantener. Algunas buenas practicas para escribir regex mantenibles incluyen: empieza por el caso mas simple y ve anadiendo complejidad gradualmente, probando con nuestra herramienta en cada paso. Usa nombres descriptivos cuando guardes regex como constantes en tu codigo (EMAIL_PATTERN en lugar de REGEX_1). Documenta con comentarios que hace cada parte del patron, especialmente en regex complejos.

Evita el backtracking catastrofico: patrones con cuantificadores anidados como (a+)+ pueden causar que el motor de regex entre en un bucle exponencial con ciertas entradas. Usa cuantificadores posesivos o atomicos cuando tu motor los soporte. Prefiere clases de caracteres especificas ([0-9]) sobre metacaracteres genericos (.) cuando sabes exactamente que tipo de caracter esperas. Usa anclas (^ y $) siempre que quieras que el patron coincida con la cadena completa, no solo con una subcadena.

Preguntas frecuentes

¿Las regex de JavaScript son iguales a las de Python o PHP? La sintaxis basica es muy similar entre lenguajes, pero hay diferencias en las funcionalidades avanzadas. JavaScript no soporta lookbehind de longitud variable (aunque las versiones recientes soportan lookbehind basico), ni posesivos, ni grupos atomicos. Python anade funcionalidades como named groups (?P<name>...) y flags inline. Nuestra herramienta usa el motor de regex de JavaScript, que es el mismo que usaras en desarrollo web frontend y backend con Node.js.

¿Por que mi regex coincide con mas texto del esperado? Probablemente tus cuantificadores son "greedy" (codiciosos) por defecto: * y + intentan consumir la mayor cantidad de texto posible. Anade ? despues del cuantificador (*?, +?, {n,m}?) para hacerlo "lazy" (perezoso) y que consuma la menor cantidad posible.

¿Como valido un email correctamente con regex? La validacion perfecta de emails con regex es extremadamente compleja (el RFC 5322 define un formato que requiere un regex de cientos de caracteres). Para la mayoria de aplicaciones practicas, el patron [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} es suficiente. Para validacion completa, combina una regex basica con verificacion del dominio MX.

¿Los datos que introduzco se envian a algun servidor? No. Todo el procesamiento de regex se ejecuta localmente en tu navegador usando el motor RegExp nativo de JavaScript. Ningun dato se transmite a servidores externos ni se almacena en ninguna base de datos.

¿Puedo copiar la regex generada directamente en mi codigo? Si. El boton "Copiar" copia la expresion regular en formato JavaScript (/patron/flags) que puedes pegar directamente en tu codigo. Para otros lenguajes, el patron es el mismo pero la sintaxis de delimitadores puede variar (por ejemplo, en Python usarias re.compile(r"patron")).

Publicidad