I bordi di una parola sono identificati dal carattere speciale \b. In particolare, \b è detto ancoraggio, in quanto non individua di per sé un carattere o parola, bensì i bordi. Gli ancoraggi sono utilizzati per individuare le sottostringhe.
Al fine di estrarre una parola isolata, cioè preceduta e seguita da terminatori di tipo spazio, punteggiatura, inizio o fine riga la sintassi è la seguente:
\bsottostringa\b
ESEMPIO DI ESTRAZIONE DI SOTTOSTRINGHE Supponendo, ad esempio, di avere il testo:
Ad rivum eundem lupus et agnus venerant, siti compulsi. Superior stabat lupus, longeque inferior agnus.
L'espressione: \blupus\b individua le due occorrenze della parola latina lupus presenti nel testo:
Ad rivum eundem lupus et agnus venerant, siti compulsi. Superior stabat lupus, longeque inferior agnus. |
L'espressione complementare al bordo è ottenuta utilizzando il carattere speciale \w, che identifica i caratteri delle parole. L'espressione:
\b\w͡\w\b (n volte)
o, equivalentemente
\b\w{n}\b
identifica, ad esempio, tutte le parole di tanti caratteri quante sono le \w (i.e. le parole di n caratteri).
In alternativa, è possibile utilizzare il + per identificare un numero intero positivo di ripetizioni del carattere speciale nel pattern di ricerca (e.g. \w+), oppure l'* per identificare anche le occorrenze di dimensione 0 (e.g. \w*). Infine ? identifica 0 o 1 ripetizioni (e.g. \w?).
ESEMPIO DI ESTRAZIONE DI SOTTOSTRINGHE Supponendo, ad esempio, di avere il testo:
Ad rivum eundem lupus et agnus venerant, siti compulsi. Superior stabat lupus, longeque inferior agnus. (fedro@irion.it)
L'espressione: \b\w\w\w\w\w\b individua le occorrenze di tutte le parole di cinque caratteri presenti nel testo:
Ad rivum eundem lupus et agnus venerant, siti compulsi. Superior stabat lupus, longeque inferior agnus. (fedro@irion.it)
L'espressione: \b\w+\b individua le occorrenze di tutte le parole di qualsiasi numero di caratteri presenti nel testo:
Ad rivum eundem lupus et agnus venerant, siti compulsi. Superior stabat lupus, longeque inferior agnus. (fedro@irion.it)
L'espressione: \w+@\w+\.\w+ individua unicamente i pattern di tipo email presenti nel testo:
Ad rivum eundem lupus et agnus venerant, siti compulsi. Superior stabat lupus, longeque inferior agnus. (fedro@irion.it) |
È inoltre possibile utilizzare i caratteri speciali maiuscoli che identificano la negazione logica dei caratteri speciali minuscoli (e.g. \B identifica i "non" bordi, cioè tutto tranne i bordi, spazi e punteggiatura compresi, \W i "non" caratteri, \D le "non" cifre).
Il carattere speciale \A identifica l'inizio dell'intero blocco di testo (o file) e, analogamente, \Z ne identifica la fine.
Il carattere speciale ^ identifica l'inizio della riga di testo e il $ la fine.
ESEMPIO DI ESTRAZIONE DI UN CODICE FISCALE Supponendo, ad esempio, di avere il testo:
Nome xxxxxx Cognome yyyyyy Codice MDSPLG74P27H501R
L'espressione: [A-Z]]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z] individua le occorrenze di pattern di potenziali codici fiscali italiani: Nome xxxxxx Cognome yyyyyy Codice MDSPLG74P27H501R Naturalmente, non è effettuato, in questo esempio, alcun controllo sulla correttezza del codice, ma solo sul pattern. |
L'operatore pipe | identifica le alternative:
\stringaA|\stringaB
identifica tutti le \stringaA e le \stringaB presenti nel testo.