Le espressioni regolari sono abbastanza comuni nella programmazione di computer. Ma sono disponibili anche per gli utenti finali. Ad esempio, se hai a che fare con PowerShell o il comando Findstr, puoi utilizzarli. E ci sono utilità di terze parti (come Agent Ransack e EditPad) che supportano le espressioni regolari. Dato che sono così utili in molti ambienti diversi, ho deciso che un suggerimento su di loro è in ordine.

Un’espressione regolare è una stringa, spesso costituita da caratteri speciali, progettata per corrispondere a un modello di ricerca. Ad esempio, se stiamo usando il comando Findstr, possiamo cercare la parola “documento”

immediatamente seguito da una virgola o da un punto specificando la stringa di ricerca “documento [,.]”. I caratteri speciali in questo caso sono le parentesi quadre, il che significa che uno qualsiasi dei caratteri racchiusi deve seguire la parola “documento”.

Ci sono molti caratteri speciali che possono essere usati in un’espressione regolare. Molti dei quali sono elencati di seguito:

Character

Description

Match 0 or more characters. Example: haven matches both heaven

and haven.

+

Match 1 or more characters. Example: he+aven matches heaven and

heeaven but not haven.

^

Match what follows only if it’s at the beginning of the string.

Example: if your regular expression is ^document, it will match document

in the string “document the requirements”, but it will not match

anything in the string “this is a requirements document”.

$

Match what precedes only if it’s at the end of the string.

Example: if your regular expression is document$, it will match document

in the string “this is a requirements document”, but it will not match

anything in the string “document the requirements”.

\d

Match a digit. Example: \d matches each digit individually in

the string “my degree is from 1987”. If you want to match all four

digits at once, just repeat the \d like \d\d\d\d.

.

Match any single character. The period is like a wildcard in that

it will match anything.

(a

b)

Per vedere le espressioni regolari in azione, combiniamone alcune e usiamo il comando Findstr per trovare le occorrenze di stringhe in un file. Ho un file chiamato Barry.tmp che contiene il seguente testo:

Video provides a powerful way to help you prove your point.  When you click Online Video, you can paste in the embed code for  the 20 or 30 videos you want to add. You can also type a keyword  to search online for the video that best fits your document.

Usiamo Findstr per trovare stringhe di cifre nel file: (Vedi Figura 1.)

image

Figura 1. Ricerca di stringhe di cifre.

Permettetemi di introdurre un paio di altri concetti. È possibile utilizzare una coppia di parentesi quadre per delimitare un intervallo di caratteri da trovare. Ad esempio, specificando _ [a-z] _ corrisponderà qualsiasi carattere alfabetico. Degno di nota è anche l’uso del carattere barra rovesciata (\) per “sfuggire” al carattere che segue e trattarlo letteralmente. Questo è utile se vuoi trovare un carattere che altrimenti verrebbe trattato come parte dell’espressione regolare. Armati di queste due informazioni, possiamo ora cercare nel nostro file un carattere alfabetico seguito da un punto, cioè trovare le righe che sono le estremità delle frasi: (Vedi Figura 2.)

image

Figura 2. Ricerca della fine delle frasi.

Consentitemi di concludere con una parola di cautela: nella mia esperienza, il motore delle espressioni regolari utilizzato nella riga di comando di Windows è leggermente diverso dalla maggior parte dei motori delle espressioni regolari. Le espressioni regolari che dovrebbero funzionare (e che funzionano in altre utilità) potrebbero non funzionare come previsto dalla riga di comando. Quindi, conoscendo il tuo chilometraggio può variare, sperimentali, ma non scommettere sul tuo prossimo stipendio che ciò che hai inserito funzionerà come previsto.

Questo suggerimento (1364) si applica a Windows 7, 8 e 10.