Per visualizzare questo sito, attivare JavaScript.

Server di posta elettronica MDaemon 25.0

Navigazione: Menu Sicurezza > Filtro contenuti e antivirus > Editor di Filtro contenuti > Regole

Uso di espressioni regolari nelle regole di filtro

Scorri Precedente Primo livello Successivo Altro

Il sistema di Filtro contenuti supporta le ricerche in base a espressioni regolari, una tecnica versatile che consente di cercare non solo stringhe di testo specifiche, ma anche modelli di testo. Le espressioni regolari contengono un insieme di testo semplice e di caratteri speciali che indicano il genere di corrispondenza da ricercare e, di conseguenza, rendono le regole di filtro dei contenuti più potenti e mirate.

Descrizione delle espressioni regolari

Un'espressione regolare (regular expression o regexp) è un modello di testo costituito da una combinazione di caratteri speciali, noti come metacaratteri e di caratteri di testo alfanumerici o "letterali", ad esempio abc, 123 e così via. Il modello viene utilizzato per confrontare le stringhe di testo. Le espressioni regolari vengono utilizzate principalmente per individuare corrispondenze di testo normale e per eseguire ricerche e sostituzioni.

I metacaratteri sono caratteri speciali utilizzati per funzioni e scopi specifici nell'ambito delle espressioni regolari. L'implementazione delle espressioni regolari nel sistema Filtro contenuti di MDaemon consente l'utilizzo dei seguenti metacaratteri:

\ | () [] ^ $ * + ? . <>

Metacaratteri

Descrizione

\

Quando precede un metacarattere, la barra rovesciata ( "\" ) fa sì che questo venga considerato come un carattere letterale. La barra è necessaria se si desidera che l'espressione regolare esegua la ricerca di uno dei caratteri speciali utilizzati come metacarattere. Ad esempio, per la ricerca di "+" le espressioni devono includere "\+".

|

Il carattere disgiuntivo (chiamato anche "OR" o "barra verticale") viene utilizzato per indicare che una delle espressioni ai lati del carattere deve corrispondere alla stringa di destinazione. Nella ricerca di una stringa di testo, l'espressione regolare "abc|xyz" troverà una corrispondenza con tutte le occorrenze di "abc" o "xyz".

[...]

Una serie di caratteri tra parentesi quadre ("[" e "]") indica che qualsiasi carattere della serie può corrispondere alla stringa di testo desiderata. Un trattino ("-") interposto tra i caratteri racchiusi da parentesi indica un intervallo di caratteri. Ad esempio, la ricerca della stringa "abc" con l'espressione regolare "[a-z]" produrrà tre corrispondenze: "a", "b" e "c". L'utilizzo dell'espressione "[az]" determinerà una sola corrispondenza: "a".

^

Indica l'inizio di una riga. Nella stringa di destinazione "abc ab a", l'espressione "^a" produrrà una corrispondenza, ovvero il primo carattere della stringa di destinazione. Anche l'espressione regolare "^ab" produrrà una corrispondenza, con i primi due caratteri della stringa di destinazione.

[^...]

L'accento circonflesso ("^") immediatamente successivo alla parentesi quadra sinistra ("[") ha un altro significato. Viene utilizzato per escludere gli altri caratteri tra parentesi dalla corrispondenza con la stringa di destinazione. L'espressione "[^0-9]" indica che il carattere di destinazione non deve essere un numero.

(...)

Le parentesi interessano l'ordine di valutazione del modello e operano come espressione racchiusa tra tag da utilizzare per le espressioni di ricerca e sostituzione.

Il risultato di una ricerca eseguita con un'espressione regolare viene temporaneamente conservato e può essere utilizzato nell'espressione sostitutiva per creare una nuova espressione. Nell’espressione replace è possibile includere un carattere "$0", che sarà sostituito dalla sotto-stringa trovata nell’espressione regolare durante la ricerca. Quindi, se l’espressione search "a(bcd)e" rileva una sotto-stringa corrispondente, un’espressione replace di "123-$0-123" sostituirà il testo corrispondente con "123-abcde-123".

Allo stesso modo, è possibile utilizzare i caratteri speciali "$1”, "$2”, "$3" e così via nell’espressione replace. Questi caratteri vengono sostituiti solo dai risultati dell'espressione racchiusa tra tag anziché dall'intera sottostringa corrispondente. Se l'espressione regolare contiene più espressioni racchiuse da tag, il numero che segue la barra rovesciata indica l'espressione racchiusa tra tag alla quale si fa riferimento. Ad esempio, se l'espressione di ricerca è "(123)(456)" e l'espressione di sostituzione è "a-$2-b-$1", la sottostringa corrispondente verrà sostituita con "a-456-b-123" e, in questa, l'espressione di sostituzione "a-$0-b" verrà sostituita con "a-123456-b"

$

Il simbolo di dollaro ("$") indica la fine della riga. Nella stringa di testo "13 321 123", l'espressione "3$" produrrà una corrispondenza, rappresentata dall'ultimo carattere della stringa. Anche l'espressione regolare "123$" produrrà una corrispondenza, con gli ultimi tre caratteri della stringa di destinazione.

*

L'asterisco ("*") di quantificazione indica che il carattere situato a sinistra deve corrispondere a zero o più occorrenze del carattere in una riga. Pertanto, "1*abc" produrrà una corrispondenza con il testo "111abc" e "abc".

+

Analogamente all'asterisco di quantificazione, il segno "+" di quantificazione indica che il carattere situato a sinistra deve corrispondere a una o più occorrenze del carattere in una riga. Pertanto, "1+abc" produrrà una corrispondenza con il testo "111abc", ma non con il testo "abc".

?

Il punto interrogativo ("?") di quantificazione indica che il carattere situato a sinistra deve corrispondere zero o una volta.
"1?abc" produrrà quindi una corrispondenza con il testo "abc" e con la porzione "1abc" di "111abc".

.

Il metacarattere punto (".") indica una corrispondenza con qualsiasi altro carattere. ".+abc" produrrà una corrispondenza con "123456abc" e "a.c" con "aac", abc", acc" e così via.

Condizioni e azioni appropriate

È possibile utilizzare le espressioni regolari in qualsiasi Condizione della regola di filtro Intestazione. ad esempio in qualsiasi regola la cui condizione sia "Se l'INTESTAZIONE FROM contiene". Le espressioni regolari possono essere utilizzate anche nella condizione "Se il CORPO DEL MESSAGGIO contiene".

Le espressioni regolari possono essere utilizzate in due azioni delle regole di Filtro contenuti: "Trova e sostituisci in un'intestazione" e "Trova e sostituisci nel corpo del messaggio".

Le espressioni regolari utilizzate nelle condizioni delle regole di Filtro contenuti non tengono conto della distinzione tra maiuscole/minuscole. Una lettera maiuscola viene considerata identica alla stessa lettera minuscola.

Il riconoscimento di maiuscole e minuscole nelle espressioni regolari utilizzate nelle azioni delle regole di Filtro contenuti è facoltativo. Quando si crea un'espressione regolare nell'azione della regola, è possibile abilitare o disabilitare questa opzione.

Configurazione di un'espressione regolare nella condizione di una regola

Per configurare una condizione di intestazione o corpo del messaggio utilizzando un'espressione regolare, procedere come indicato di seguito.

1.Nella finestra di dialogo Crea regola, scegliere la casella di controllo corrispondente alla condizione di intestazione o corpo del messaggio da inserire nella regola.

2.Nell'area di riepilogo situata nella parte inferiore della finestra di dialogo Crea regola, scegliere il collegamento "contiene stringhe specifiche" corrispondente alla condizione selezionata nel passaggio 1. Verrà visualizzata la finestra di dialogo Specifica testo ricerca.

3.Fare clic sul collegamento "contains (contiene)" all'interno dell'area "Stringhe correnti".

4.Scegliere "Matches Regular Expression (Corrisponde a espressione regolare)" nella casella di riepilogo a discesa, quindi fare clic su OK.

5.Se si desidera assistenza per la creazione dell'espressione regolare o si intende controllarla, scegliere "Prova espressione regolare." Se non si desidera utilizzare la finestra di dialogo Test espressione regolare, inserire l'espressione regolare nella casella di testo, scegliere Aggiungi e proseguire con il passaggio 8.

6.Inserire l'espressione nella casella di testo "Cerca espressione". Per semplificare il processo, utilizzare il menu di scelta rapida, che consente di inserire agevolmente i metacaratteri desiderati nell'espressione. Per accedere al menu, scegliere il pulsante ">". Quando si seleziona un'opzione del menu, nell'espressione viene inserito il metacarattere corrispondente e il punto di inserimento viene spostato nella posizione appropriata per il carattere stesso.

7.Digitare il testo per il controllo dell'espressione nell'area di testo e scegliere Test. Al termine del controllo, scegliere OK.

8.Fare clic su OK.

9.Proseguire con la creazione della regola.

Configurazione di un'espressione regolare nell'azione di una regola

Per configurare un'azione di ricerca e sostituzione utilizzando un'espressione regolare, attenersi alla procedura indicata di seguito.

1.Nella finestra di dialogo Crea regola, scegliere la casella di controllo corrispondente all'azione "Search and Replace... (Trova e sostituisci)" da inserire nella regola.

2.Nell'area di riepilogo situata nella parte inferiore della finestra di dialogo Crea regola, scegliere il collegamento "specifica informazioni" corrispondente alla condizione selezionata nel passaggio 1. Verrà visualizzata la finestra di dialogo Trova e sostituisci.

3.Se nel passaggio 1 si è scelta l'azione "Cerca in intestazione...", nella casella di riepilogo a discesa selezionare l'intestazione desiderata oppure digitarla, se non disponibile. Se nel passaggio 1 non si è scelta l'azione "Cerca in intestazione...", ignorare questo passaggio.

4.Inserire l'espressione di ricerca desiderata. Per semplificare il processo, utilizzare il menu di scelta rapida, che consente di inserire agevolmente i metacaratteri desiderati nell'espressione. Per accedere al menu, scegliere il pulsante ">". Quando si seleziona un'opzione del menu, nell'espressione viene inserito il metacarattere corrispondente e il punto di inserimento viene spostato nella posizione appropriata per il carattere stesso.

5.Inserire l'espressione sostitutiva desiderata. Come nel caso dell'espressione di ricerca, anche in questa situazione è possibile utilizzare un menu di scelta rapida. Per eliminare la sottostringa anziché sostituirla con un testo diverso, lasciare la casella di testo vuota.

6.Se si desidera che l'espressione tenga conto di maiuscole e minuscole, scegliere "Maiuscole/minuscole".

7.Per trovare e sostituire stringhe da considerare come espressioni regolari, scegliere Espressione regolare. In caso contrario, ogni stringa verrà considerata come semplice sottostringa di ricerca e sostituzione e verrà ricercata una corrispondenza letterale esatta del testo.

8.Se non si desidera controllare l'espressione, ignorare questo passaggio. Per controllare l'espressione, scegliere "Esegui controllo". Nella finestra di dialogo relativa al controllo delle operazioni di ricerca e sostituzione, inserire le espressioni e il testo da controllare, quindi scegliere Controlla. Al termine del controllo, scegliere OK.

9.Fare clic su OK.

10.Proseguire con la creazione della regola.