Lezioni del modulo (2/4)
Confini di parola: `\b` `\B`
\b e' una ancora di confine di parola: matcha la posizione fra un
carattere di parola (\w) e un non-parola (\W, oppure inizio/fine
stringa). Come ^ e $, NON consuma caratteri.
Pattern: \bgatto\b
Sample: Il gatto e la gattina giocano.
^^^^^gatto matcha solo come parola intera: dentro gattina la sequenza
gatto non c'e' (manca la o finale), ma anche con gatti non
matcherebbe gatto perche' la i finale e' un carattere di parola.
\B e' il contrario: matcha una posizione che NON e' un confine di
parola.
Trovare "parole intere"
L'uso piu' tipico di \b e' "matcha la parola X solo se isolata, non come
parte di un'altra parola":
\bif\b matcha 'if' ma non 'sniff', 'gift', 'lifetime'.Confini e caratteri non di parola
Il confine \\b non matcha alcun carattere fisico, è solo un test di posizione. Esiste un confine \\b tra un carattere \\w e un non-\\w (o inizio/fine testo). La negazione \\B asserisce che la posizione corrente non è un confine di parola.
Prova tu
Trova ogni occorrenza della parola intera `cat` (case-insensitive). NON deve matchare `category`, `concatenate`, `scatter`.
Mostra suggerimento
Avvolgi 'cat' fra due \\b: confine all'inizio E confine alla fine.
Soluzione disponibile dopo 3 tentativi
Esercizio di ripasso
Trova ogni numero intero che NON sia parte di un identificatore (es. `42` si', ma non `var42` ne' `42abc`). Usa `\\b` su entrambi i lati.
Mostra suggerimento
\\b\\d+\\b matcha solo sequenze di cifre 'isolate'. abc42 ha 'c' (parola) prima del 42.
Soluzione disponibile dopo 3 tentativi
Sfida aggiuntiva
Trova la sequenza `cat` solo se è l'inizio di una parola più lunga, escludendo quando appare come parola intera o alla fine (es. matcha `catalog` ma non `wildcat` o `cat` isolata).
Mostra suggerimento
Usa \b all'inizio di cat (confine di parola) e \B alla fine di cat (non confine di parola).
Soluzione disponibile dopo 3 tentativi