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

Lookaround in pratica

Mettiamo insieme tutte e quattro le forme di lookaround in scenari reali. I lookaround brillano quando devi:

  1. Estrarre un valore senza il contesto che lo identifica.
  2. Validare una stringa contro condizioni multiple indipendenti.
  3. Filtrare match che ne soddisfano alcune ma non altre.

Validazione password

Code
Pattern: ^(?=.*[A-Z])(?=.*\d)(?=.*[^a-zA-Z\d]).{8,}$
Verifica:
  - almeno una maiuscola      (?=.*[A-Z])
  - almeno una cifra          (?=.*\d)
  - almeno un simbolo         (?=.*[^a-zA-Z\d])
  - lunghezza minima 8        .{8,}

Ogni lookahead controlla una condizione, partendo dall'inizio (^). Sono tutti a larghezza zero: l'engine rimane in posizione 0 e poi consuma con .{8,}$.

Estrazione tra delimitatori

Code
Pattern: (?<=\().+?(?=\))
Sample:  Funzione foo(bar) e baz(qux, qix)
Match: "bar", "quux, qix" (senza parentesi)

Lookbehind + lookahead + quantificatore lazy: estrae il contenuto dentro le parentesi senza includerle.

Combinare lookahead e lookbehind

L'uso congiunto di lookahead e lookbehind permette di isolare stringhe che si trovano all'interno di precisi tag o formati (es. estrarre il testo tra due tag senza includere i tag nel match finale). Ciò evita operazioni successive di pulizia delle stringhe.

Prova tu

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

Estrai il valore di ogni assegnazione `chiave=valore` dal log: SOLO i valori (non chiavi, non `=`). I valori possono contenere lettere e cifre.

Cargando editor...
Mostrar pista

Sposta `=` dentro un lookbehind (?<==): cosi' il match contiene solo il valore.

Solución disponible después de 3 intentos

Esercizio di ripasso

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

Verifica quali parole hanno almeno UNA maiuscola E almeno UNA cifra (qualsiasi ordine), trovandole nel testo.

Cargando editor...
Mostrar pista

Doppio lookahead all'inizio: (?=\\w*[A-Z])(?=\\w*\\d). Poi consuma la parola con \\w+.

Solución disponible después de 3 intentos

Sfida aggiuntiva

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

Estrai solo le cifre numeriche racchiuse esattamente tra parentesi tonde, es. estrai `102` da `(102)` senza catturare le parentesi.

Cargando editor...
Mostrar pista

Combina un lookbehind positivo (?<=\( ) per la parentesi aperta e un lookahead positivo (?=\) ) per quella chiusa.

Solución disponible después de 3 intentos