Estrazione di Sottostringhe

Navigation:  APPENDICI > Regular Expressions >

Estrazione di Sottostringhe

Previous pageReturn to chapter overviewNext page

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 

ex

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

 

ex

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 venerantsiti compulsi

Superior stabat lupuslongeque 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.

 

ex

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.