Saltar al contenido principal
eLearner.app
Módulo 4 · Lección 4 de 416/32 en el curso~12 min
Lecciones del módulo (4/4)

Grupos con nombre y referencias

Cuando el número de grupos crezca, recuerda que $2 es "el mes" y $5 y "el año" se vuelve frágil. La sintaxis (?<nome>...) ti permette di nominare un gruppo: lo accedi per nome via grupos.nombre (e nelle sostituzioni come $<nome>).

Code
Pattern: (?<anno>\d{4})-(?<mese>\d{2})-(?<giorno>\d{2})
Sample:  2024-03-15
Gruppi:
  anno    = "2024"
  mese    = "03"
  giorno  = "15"

El editor también muestra los grupos nombrados junto al partido.

Referencia anterior

Una referencia retrospectiva le permite consultar, dentro del mismo patrón, a una captura anterior. La sintaxis:

  • \1, \2, \u2026 - referencia numerada (al grupo 1, 2, \u2026). -\k<nome> -- referencia nombrada.
Code
Pattern: \b(\w+)\s+\1\b
Sample:  un test un test il il gatto
                                ^^^^^

Matcha palabras duplicadas consecutivas: (\w+) capta una palabra, luego \s+\1 requiere un espacio y la misma palabra.

Autodocumentación y referencia retrospectiva nombrada

Los grupos con nombre mejoran la legibilidad del código JavaScript: en lugar de hacer referencia a match[1], se accede a match.groups.nome. En el patrón, la referencia posterior se realiza mediante la sintaxis \\k<nome>.

Pruébalo tú mismo

Ejercicio#regex.m4.l4.e1
Intentos: 0Cargando...

Trova ogni data in formato YYYY-MM-DD nominando i gruppi `anno`, `mese`, `giorno`.

Cargando editor...
Mostrar pista

Sintassi: (?<nome>pattern). Il match ti mostra i gruppi sotto la voce 'named'.

Solución disponible después de 3 intentos

Ejercicio de revisión

Ejercicio#regex.m4.l4.e2
Intentos: 0Cargando...

Trova parole consecutive duplicate (es. `il il`, `casa casa`). Usa un gruppo per la prima e un backreference `\\1` per la seconda.

Cargando editor...
Mostrar pista

\\b(\\w+)\\s+\\1\\b: la prima parola e' (\\w+), poi spazio, poi la STESSA parola \\1.

Solución disponible después de 3 intentos

Desafío adicional

Ejercicio#regex.m4.l4.e3
Intentos: 0Cargando...

Trova coppie di tag HTML/XML (es. `<b>testo</b>` o `<i>testo</i>`) assicurandoti che il tag di chiusura coincida con quello di apertura utilizzando una named backreference.

Cargando editor...
Mostrar pista

Assegna il nome (?<tag>\w+) e chiudilo con \k<tag>.

Solución disponible después de 3 intentos