Come trovare i bordi delle parole
Per trovare i bordi di una parola con le espressioni regolari si utilizzano i caratteri speciali di ancoraggio backslash b e B. Il primo terminatore trova il bordo iniziale e finale della parola mentre il secondo è la negazione e trova i non bordi.
Si parla di istruzioni di ancoraggio perché fissano delle ancore all'interno della stringa nei punti di separazione tra due caratteri, tra l'inizio della stringa e il primo carattere, o l'ultimo carattere e la fine della stringa.
Un esempio pratico
Nel seguente testo voglio cercare tutte le parole che cominciano con la lettera A minuscola o maiuscola.
Per farlo utilizzo la tecnica di ancoraggio tramite i border.
L'espressione regola individua tutti i termini del testo che cominciano con la lettera A o a.
Nota. Per trovare sia la lettera minuscola che maiuscola ho usato un gruppo [aA]. In questo modo il matching funziona sia con la lettera minuscola (a) che maiuscola (A).
Usando l'ancoraggio inverso posso individuare tutte le lettere a, salvo quelle all'inizio di una parola.
In questo caso la regex non seleziona le lettere iniziali di "arte" e "Ancona" ma seleziona tutte le altre.
Infine, per trovare tutte le parole con A ( maiuscola o minuscola ) come lettera iniziale e finale A scrivo nel seguente modo:
Con questa regex seleziono tutte le parole che cominciano e finiscono con la lettera A, indipendentemente dalla lunghezza della prola.
Nota. Il carattere speciale w individua tutti i caratteri che non siano bordi mentre il quantificatore + considera una o più occorrenze. Così facendo seleziono tutte le parole di qualsiasi lunghezza. Avrei potuto usare anche quattro caratteri jolly (....) ottenendo lo stesso risultato ma, in questo modo, avrei selezionato soltanto le parole lunghe 6 caratteri che cominciano e finiscono con la lettera A.