¿Cómo escribo una regex sin saber regex?
En lugar de leer documentación y pelear con `\d+` y `[a-z]` a mano, pega ejemplos de lo que quieres que coincida y lo que no. La herramienta sintetiza entre 3 y 6 expresiones regulares candidatas y muestra cuál encaja mejor.
Textarea izquierdo: lo que debe coincidir (un ejemplo por línea). Textarea derecho: lo que NO debe coincidir. El algoritmo: tokenizar, alinear, generalizar, verificar. Salida: una `/regex/flags` lista para usar con un panel de pruebas para cada ejemplo.
Prueba primero los patrones más simples (alternancia `(opc1|opc2)`), luego coincidencia por posición y después patrones estructurales con cuantificadores como `\d+`, `[a-z]+`. Muestra cada candidato; tú eliges o afinas a mano.
Cómo se usa
- En "Debe coincidir" pega 3-10 ejemplos, uno por línea. Más ejemplos = mejor regex.
- En "NO debe coincidir" pega ejemplos que NO deben coincidir (p. ej. emails malformados si buscas emails). Ayuda a rechazar patrones demasiado amplios.
- La herramienta genera varios candidatos automáticamente. Cada uno muestra: cuántos positivos coinciden y cuántos negativos coinciden por error.
- Elige un candidato pulsando "Usar este". Aparece una vista previa con resultados de prueba por ejemplo.
- Activa "Edición manual" para retocar la regex elegida (p. ej. añadir límites de palabra `\b`, flags `(?i)`).
- Copia la regex final y pégala en tu código (JS, Python, Java, Go, PHP).
- Si ningún candidato encaja perfectamente, añade más ejemplos (de cualquier lado). El algoritmo aprende con cada línea nueva.
Cuándo te resulta útil
Situaciones reales en las que las habilidades con regex te ahorran horas:
- Validación de formularios: un campo "confirmar email" necesita una regex. Genera una a partir de 5 emails de muestra en 30 segundos.
- Parseo de logs: cazar patrones de timestamp, IP o user-agent en archivos .log. Da 3-4 líneas de log y obtén un patrón.
- Limpiar datos CSV/Excel: extraer teléfonos, códigos postales, fechas. Tradicionalmente tedioso; la regex lo hace en una expresión.
- Buscar y reemplazar en editores: VS Code, Sublime, IntelliJ soportan búsqueda por regex. Una sola regex reemplaza 200 fragmentos de golpe.
- Validación de API: middleware de Express, Pydantic en FastAPI, pipes en NestJS, todos validan entrada con regex.
- Migraciones de base de datos: `UPDATE table SET col = REGEXP_REPLACE(col, ...)` en Postgres, MySQL u Oracle.
- Web scraping: extraer URLs, emails, teléfonos de HTML (hay herramientas mejores para parsear HTML, pero para casos simples la regex vale).
- Búsqueda en terminal: `grep -E`, `ripgrep`, `ack` usan regex. Búsqueda rapidísima en gigas de código.
- Sanitización de entradas: comprobar si un nombre de usuario solo lleva caracteres seguros, si un NIF tiene 9 caracteres, si un ISBN tiene formato válido.
Tras generar una regex, pruébala de forma interactiva o conviértela a Python si trabajas en otro lenguaje.