Lección 4

Grupos de captura y reemplazo

Agrupación, backreferences y plantillas de reemplazo.

Los grupos de captura permiten que un regex recuerde partes de una coincidencia. Esa memoria potencia extracción, desgloses de validación y buscar y reemplazar estructurado.

Grupos numerados

Los paréntesis crean grupos numerados de izquierda a derecha:

Patrón: (\d{4})-(\d{2})-(\d{2}) sobre 2026-05-28

GrupoValor
$1 / \12026
$205
$328

En callbacks de reemplazo de JavaScript, match[1], match[2], … contienen los mismos valores.

Grupos sin captura

Cuando necesitas agrupar sin almacenar una captura, usa (?: ... ):

(?:https?):// agrupa la alternativa del esquema sin ocupar $1.

Esto mantiene estables las plantillas de reemplazo cuando añades prefijos opcionales después.

Backreferences

\1 dentro de un patrón se refiere a lo que coincidió el grupo 1. Ejemplo clásico: (['"]).*?\1 coincide con cadenas entre comillas con la misma comilla de apertura y cierre.

Las backreferences son potentes y fáciles de usar mal en estructuras anidadas — otra razón para no parsear HTML solo con regex.

Plantillas de reemplazo

Editores y lenguajes usan $1, $2 o $& (coincidencia completa) en cadenas de reemplazo:

  • Convertir user_id=123 en userId: 123 con un patrón rico en capturas
  • Normalizar fechas de DD/MM/YYYY a YYYY-MM-DD reordenando grupos

Previsualiza siempre reemplazos en varias líneas, incluyendo campos vacíos y espaciado inesperado.

Grupos con nombre (JavaScript moderno)

(?<year>\d{4}) expone match.groups.year. Los grupos con nombre mejoran la legibilidad en patrones largos.

Conclusión clave

Diseña patrones para que cada captura mapee a un campo semántico. Si tu cadena de reemplazo necesita diez referencias $n, considera simplificar el patrón o usar un parser.

Volver al resumen del curso