J1. Opzioni delle espressioni regolari PCRE

Le espressioni regolari vengono utilizzate sia nel file di configurazione di Server che nel Pannello di controllo per indicare oggetti da escludere dalla scansione nelle impostazioni di Scanner.

Le espressioni regolari si scrivono nella seguente forma:

qr{EXP}options

dove EXP è l'espressione stessa, options è una sequenza di opzioni (stringa di lettere), qr{} è metacaratteri letterali. In generale, la struttura si presenta così, come esempio:

qr{pagefile\.sys}i — file di swap di SO Windows NT

Di seguito vengono descritte le opzioni e le espressioni regolari stesse. Per una descrizione più dettagliata consultare http://www.pcre.org/pcre.txt.

Opzione 'a' che corrisponde a PCRE_ANCHORED

Con questa impostazione, il pattern ha forzatamente un "ancoraggio", cioè si limita a confrontare solo la prima posizione da cercare nella stringa in base a cui si esegue la ricerca ("stringa di oggetto"). Ciò può anche essere raggiunto tramite strutture appropriate del pattern stesso.

Opzione 'i' che corrisponde a PCRE_CASELESS

Con questa impostazione le lettere del pattern vengono confrontate sia con le maiuscole che con le minuscole. Questa possibilità può essere modificata nel pattern tramite l'opzione (?i).

Opzione 'x' che corrisponde a PCRE_EXTENDED

Con questa impostazione vengono ignorati gli spazi tra caratteri nel pattern, ad eccezione dei casi in cui essi sono preceduti da caratteri di controllo oppure si trovano dentro una classe di caratteri. Lo spazio non include il carattere VT (codice 11). Inoltre, vengono ignorati i caratteri che si trovano al di fuori di una classe di caratteri tra il carattere #, non preceduto da un carattere di controllo, e il segno di nuova riga, inclusivo. Questa opzione può essere modificata nel pattern tramite l'opzione (?x). Questa impostazione consente di includere commenti all'interno di pattern composti. Tenere presente che questo è applicabile solo ai caratteri di dati. I caratteri di spazio non possono stare nel pattern all'interno delle sequenze di caratteri speciali, per esempio, all'interno della sequenza (?( la quale introduce un subpattern condizionale.

Opzione 'm' che corrisponde a PCRE_MULTILINE

Di default, PCRE considera che la stringa di oggetto sia composta da una singola riga di caratteri (anche se in realtà essa contiene caratteri di nuova riga). Il metacarattere "inizio riga" "^" viene confrontato solo all'inizio della stringa, mentre il metacarattere "fine riga" "$" viene confrontato solo alla fine della stringa oppure prima della nuova riga finale (se non è impostata l'opzione PCRE_DOLLAR_ENDONLY).

Se è impostata l'opzione PCRE_MULTILINE, i metacaratteri "inizio riga" e "fine riga" si attaccano a qualsiasi carattere di nuova riga che viene direttamente prima o dopo di essi nella stringa di oggetto e anche all'inizio e alla fine della stringa. Questa opzione può essere modificata nel pattern tramite l'opzione (?m). Se il testo non contiene i caratteri "\n" o se il pattern non contiene ^ o $, l’opzione PCRE_MULTILINE non ha senso.

Opzione 'u' che corrisponde a PCRE_UNGREEDY

Questa opzione annulla "l'avidità" dei quantificatori e così essi diventano "non avidi" di default, ma ripristinano "l'avidità" se sono seguiti da "?". Questa possibilità può anche essere configurata tramite l'opzione (?U) nel pattern.

Opzione 'd' che corrisponde a PCRE_DOTALL

Con questa impostazione il metacarattere di punto nel pattern viene confrontato con tutti i caratteri, compreso il carattere di nuova riga. Senza di esso i caratteri di nuova riga vengono esclusi. Questa opzione può essere modificata nel pattern tramite la nuova opzione (?s). Una classe negativa, per esempio [^a], viene sempre confrontata con il carattere di nuova riga, a prescindere dalle impostazioni di questa opzione.

Opzione 'e' che corrisponde a PCRE_DOLLAR_ENDONLY

Con questa impostazione il segno di dollaro nel pattern viene confrontato solo alla fine della stringa di oggetto. Senza questa opzione il segno di dollaro viene confrontato anche nella posizione direttamente prima del carattere di nuova riga alla fine della stringa (ma non davanti a qualsiasi altro carattere di nuova riga). L’opzione PCRE_DOLLAR_ENDONLY viene ignorata se è impostata l’opzione PCRE_MULTILINE.