Vai al contenuto
eLearner.app
Modulo 3 · Lezione 2 di 410/32 nel corso~10 min
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.

Code
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":

Code
\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

Esercizio#regex.m3.l2.e1
Tentativi: 0Caricamento…

Trova ogni occorrenza della parola intera `cat` (case-insensitive). NON deve matchare `category`, `concatenate`, `scatter`.

Caricamento editor…
Mostra suggerimento

Avvolgi 'cat' fra due \\b: confine all'inizio E confine alla fine.

Soluzione disponibile dopo 3 tentativi

Esercizio di ripasso

Esercizio#regex.m3.l2.e2
Tentativi: 0Caricamento…

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.

Caricamento editor…
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

Esercizio#regex.m3.l2.e3
Tentativi: 0Caricamento…

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).

Caricamento editor…
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