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 quest’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 quest’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 quest’impostazione, vengono ignorati gli spazi fra 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 fuori di una classe di caratteri tra il carattere #, non preceduto da un carattere di controllo, e il segno di nuova riga, inclusivo. Quest'opzione può essere modificata nel pattern tramite l'opzione (?x). Quest'impostazione rende possibile inserire commenti dentro pattern compositi. Tenere presente che questo è applicabile solo ai caratteri d'informazione. I caratteri di spazio non possono stare nel pattern dentro le sequenze di caratteri speciali, per esempio, dentro la sequenza (?( la quale introduce un pattern secondario condizionale. •Opzione 'm' che corrisponde a PCRE_MULTILINE Di default, PCRE considera che la stringa di oggetto consista di una sola riga di caratteri (anche se in realtà essa contiene segni 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 segno di nuova riga che viene direttamente prima o dopo di essi nella stringa di oggetto e anche all'inizio e alla fine della stringa. Quest'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 Quest'opzione annulla "l'avidità" dei quantificatori in modo che 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 quest’impostazione, il metacarattere di punto nel pattern viene confrontato con tutti i caratteri, compreso il segno di nuova riga. Senza di esso i segni di nuova riga vengono esclusi. Quest'opzione può essere modificata nel pattern tramite la nuova opzione (?s). Una classe negativa, per esempio [^a], viene sempre confrontata con il segno di nuova riga, a prescindere da impostazioni di quest’opzione. •Opzione 'e' che corrisponde a PCRE_DOLLAR_ENDONLY Con quest’impostazione, il segno di dollaro nel pattern viene confrontato solo alla fine della stringa di oggetto. Senza quest’opzione, il segno di dollaro viene confrontato anche nella posizione direttamente prima del segno di nuova riga alla fine della stringa (ma non davanti a qualsiasi altro segno di nuova riga). L’opzione PCRE_DOLLAR_ENDONLY viene ignorata se è impostata l’opzione PCRE_MULTILINE. |