Regex Tester

Prueba y testea expresiones regulares en tiempo real.

Expresiones Regulares: Guia completa para desarrolladores

Las expresiones regulares (regex) son patrones de busqueda que permiten encontrar y extraer texto especifico dentro de cadenas mas grandes. Son una herramienta increiblemente potente usada en validacion de formularios, busqueda y reemplazo en editores de texto, parsing de logs, extraccion de datos y filtrado. Todo lenguaje de programacion moderno soporta regex a traves de su biblioteca estandar.

Una expresion regular se compone de caracteres literales (que coinciden exactamente) y metacaracteres especiales (como ., *, +, ?, [], (), {}, ^, $, |, \) que definen patrones. Dominar regex te permite resolver en una linea problemas de procesamiento de texto que de otra forma requeririan decenas de lineas de codigo.

Casos de uso practicos

Validacion de formularios: Verifica emails, numeros de telefono, URLs, codigos postales y contrasenas antes de enviarlos al servidor. Ejemplo email: /^[^\s@]+@[^\s@]+\.[^\s@]+$/

Extraccion de datos: Extrae numeros de tarjetas de credito, fechas, IPs o cualquier patron estructurado de textos no formateados como logs o emails.

Busqueda y reemplazo: En editores como VS Code, usa regex para refactorizar codigo masivamente, como convertir todas las llamadas a una funcion antigua a un nuevo formato.

Flags disponibles

  • g (Global): Encuentra todas las coincidencias, no solo la primera
  • i (Case insensitive): Ignora mayusculas y minusculas
  • m (Multiline): ^ y $ coinciden con inicio/fin de cada linea
  • s (Dotall): El punto (.) tambien coincide con saltos de linea
  • u (Unicode): Habilita soporte completo para caracteres Unicode

Preguntas frecuentes

Que significa cada metacaracter?

. = cualquier caracter, * = 0 o mas veces, + = 1 o mas veces, ? = 0 o 1 vez, ^ = inicio de linea, $ = fin de linea, [] = clase de caracteres, () = grupo de captura, | = alternancia (OR), \ = escape.

Que son los grupos de captura?

Los parentesis () crean grupos de captura que permiten extraer partes especificas del match. Por ejemplo, /(\d{2})\/(\d{2})\/(\d{4})/ captura dia, mes y ano por separado. Los grupos con nombre facilitan la referencia posterior.

Regex puede afectar el rendimiento?

Si, regex mal disenadas pueden causar "catastrophic backtracking" con complejidad exponencial. Evita cuantificadores anidados como (a+)+ y usa herramientas como esta para probar con textos grandes antes de usar en produccion.

Cual es la diferencia entre .* y .*?

.* es codicioso (greedy): coincide con la mayor cantidad posible de caracteres. .*? es perezoso (lazy): coincide con la menor cantidad posible. En la practica, usar lazy evita problemas cuando hay multiples coincidencias en la misma linea.

Patrones regex comunes

PatronRegexEjemplo
Email/^[^\s@]+@[^\s@]+\.[^\s@]+$/user@mail.com
URL/https?:\/\/[\w.-]+/https://example.com
Telefono ES/^[6-9]\d{8}$/612345678
IPv4/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/192.168.1.1