Espressioni regolari nelle regole del flusso di posta in Exchange Online

È possibile usare espressioni regolari (RegEx) in condizioni ed eccezioni nelle regole del flusso di posta (note anche come regole di trasporto) per trovare la corrispondenza con i modelli di testo in diverse parti di un messaggio, ad esempio intestazioni di messaggio, mittente, destinatari, oggetto e corpo del messaggio. Condizioni ed eccezioni determinano se l'azione nella regola deve essere applicata a un messaggio di posta elettronica.

Nota

A causa delle variazioni negli ambienti dei clienti, il Servizio Supporto Tecnico Clienti Microsoft (CSS) non può partecipare allo sviluppo o al test di script di espressioni regolari personalizzati ("script RegEx"). Per lo sviluppo, il test e il debug di script personalizzati RegEX, i clienti di Microsoft 365 dovranno basarsi sulle risorse IT interne. In alternativa, i clienti di Microsoft 365 possono scegliere di usare una risorsa di consulenza esterna, ad esempio Microsoft Consulting Services (MCS). Indipendentemente dalla risorsa di sviluppo di script, i tecnici del supporto CSS non sono disponibili per assistere i clienti nelle richieste di script RegEx personalizzate.

Per informazioni sulle attività di gestione correlate alle regole del flusso di posta, Vedere Regole del flusso di posta (regole di trasporto) in Exchange Online.

Espressioni semplici ed espressioni regolari

Un'espressione semplice è un valore specifico che si desidera sia presente esattamente così in un messaggio. Condizioni ed eccezioni che usano espressioni semplici corrispondono a parole o stringhe di testo specifiche. Ad esempio, una condizione della regola del flusso di posta che cerca i documenti denominati Yearly Sales Forecast.docx.

Una espressione regolare è una notazione concisa e flessibile che consente di trovare schemi di testo in un messaggio. La notazione è composta da due tipi di carattere di base:

  • Caratteri letterali: testo che deve esistere nella stringa di destinazione. Questi caratteri sono caratteri normali, come tipizzati.
  • Metacaratteri: uno o più caratteri speciali che indicano come il testo può variare nella stringa di destinazione.

È possibile usare espressioni regolari per analizzare rapidamente i messaggi di posta elettronica per trovare modelli di testo specifici. Le espressioni regolari consentono di rilevare i messaggi con tipi specifici di contenuto, ad esempio i numeri di previdenza sociale (SSN), i numeri di brevetto e i numeri di telefono.

Non è ragionevolmente possibile associare dati variabili a un'espressione semplice perché un'espressione semplice richiede ogni possibile variazione del valore da rilevare. La corrispondenza di un numero elevato di espressioni semplici nel contenuto del messaggio può richiedere molte risorse. L'uso di espressioni regolari è più efficiente. Anziché specificare tutte le possibili varianti, è possibile configurare la condizione della regola del flusso di posta per cercare un modello di testo.

Espressioni regolari in Exchange Online

In Exchange Online PowerShell, i nomi dei parametri che terminano con MatchesPatterns usano espressioni regolari. Nell'interfaccia di amministrazione di Exchange , condizioni e nomi di eccezione che terminano con ... corrisponde a uno di questi modelli di testo che usano espressioni regolari. Per altre informazioni sulle condizioni delle regole del flusso di posta e sulle eccezioni in Exchange Online, vedere Condizioni ed eccezioni delle regole del flusso di posta (predicati) in Exchange Online.

Avviso

Testare attentamente le espressioni regolari. Un'espressione regolare non configurata correttamente potrebbe generare corrispondenze impreviste e causare un comportamento indesiderato delle regole del flusso di posta, tra cui:

  • Azioni indesiderate per i messaggi e il contenuto dei messaggi.
  • Potenziale perdita di dati.

Espressioni regolari complesse possono influire anche sulle prestazioni del flusso di posta. È opportuno testare le espressioni regolari in un ambiente di prova prima di implementarle nell'ambiente di produzione.

Nella tabella seguente sono elencate le stringhe di modello che è possibile usare per creare un'espressione regolare corrispondente a criteri in Exchange Online:

Stringa modello Descrizione
\S La stringa dello schema \S corrisponde a qualsiasi singolo carattere eccetto allo spazio.
\s La stringa dello schema \s corrisponde a un qualsiasi spazio singolo.
\D La stringa dello schema \D corrisponde a qualsiasi cifra non numerica.
\D La stringa dello schema \d corrisponde a qualsiasi cifra numerica singola.
\W La stringa del modello \w corrisponde a qualsiasi singolo carattere Unicode categorizzato come lettera o cifra decimale.
\W La stringa dello schema \W corrisponde a qualsiasi singolo carattere Unicode non classificato come lettera o cifra decimale.
* Il carattere asterisco ( * ) corrisponde a zero o più istanze del carattere precedente. Ad esempio, ab*c corrisponde alle stringhe seguenti: ac, abce abbbbc.
| Il carattere Pipe ( | ) funge da operatore OR. Ad esempio, 'contoso|fabrikam' corrisponde a qualsiasi istanza di contoso o fabrikam.
( ) Le parentesi fungono da delimitatori di raggruppamenti. Ad esempio, \a(bc)*\ corrisponde alle stringhe seguenti: a, abc, abcbc, abcbcbce così via.
\ Una barra rovesciata viene usata come carattere di escape prima di un carattere speciale. Caratteri speciali sono i caratteri utilizzati nelle stringhe di modello:
  • Barra rovesciata \
  • Pipe |
  • Asterisco *
  • Parentesi aperta (
  • Parentesi di chiusura )
  • Cursore ^
  • Simbolo di dollaro $

Ad esempio, se si desidera trovare una corrispondenza con una stringa che contiene (525), utilizzare \(525\).

^ Il carattere di inserimento ( ^ ) indica che la stringa del modello che segue il cursore deve esistere all'inizio della stringa di testo corrispondente. Ad esempio, ^fred@contoso corrisponde fred@contoso.com a e fred@contoso.co.uk ma non alfred@contoso.coma .
$ Il carattere simbolo di dollaro ( $ ) indica che la stringa del modello precedente deve esistere alla fine della stringa di testo corrispondente. Ad esempio, contoso.com$ corrisponde adam@contoso.com a e kim@research.contoso.com ma non corrisponde kim@contoso.com.aua .

Costruzione di espressioni regolari

Usando la tabella precedente, è possibile costruire un'espressione regolare che corrisponda al modello dei dati a cui si vuole corrispondere:

  • Esaminare ciascun carattere o gruppo di caratteri contenuti nei dati per cui si desidera eseguire la corrispondenza procedendo da sinistra verso destra.
  • Leggere la descrizione di ciascuna stringa dello schema per determinare il modo in cui viene applicata ai dati per cui si esegue la corrispondenza.
  • Determinare quale stringa del criterio nella tabella rappresenta il carattere o il gruppo di caratteri e aggiungere tale stringa di modello all'espressione regolare.

Nota

Le espressioni regolari usate nelle regole di trasporto NON fanno distinzione tra maiuscole e minuscole.

L'esempio seguente corrisponde ai numeri di telefono del Nord America nei formati 425 555-0100 e 425.555.0100:

425(\s|.)\d\d\d(-|.)\d\d\d\d

È possibile elaborare questo esempio aggiungendo il formato (425) 555-0100, dove le parentesi delimitano il prefisso.

L'esempio seguente corrisponde a tutti e tre i formati di numeri di telefono.

\d\d\d((\s|.|-|\)|\)\s)\d\d\d(\s|.|-)\d\d\d\d

L'esempio precedente può essere analizzato come segue:

  • \d\d\d: richiede che vengano visualizzate per prime esattamente tre cifre numeriche.
  • ((\s|.|-|\)|\)\s): richiede l'esistenza di uno spazio, un punto o un trattino dopo il numero a tre cifre. Ciascuna stringa corrispondente a un carattere è contenuta nei delimitatori di raggruppamenti ed è separata dal carattere barra verticale. Questa separazione significa che solo uno dei caratteri specificati all'interno dei delimitatori di raggruppamento può esistere in questa posizione nella stringa corrispondente. Per la separazione tra il prefisso e le tre cifre successive, cerca anche una parentesi chiusa o parentesi chiuse e spazio.
  • \d\d\d: richiede che vengano visualizzate esattamente tre cifre numeriche.
  • (\s|.|-): richiede l'esistenza di uno spazio, un punto o un trattino dopo il numero a tre cifre.
  • \d\d\d\d: richiede che vengano visualizzate esattamente quattro cifre numeriche.

L'esempio precedente corrisponde ai valori seguenti:

  • (425)555.0100
  • 425 555 0100
  • 425 555 0100
  • (425) 555-0100
  • 425-555-0100
  • (425) 555-0100

Creazione di un flusso di posta che usa un'espressione regolare

Nell'esempio seguente viene creata una regola del flusso di posta in Exchange Online PowerShell che usa espressioni regolari per la corrispondenza con i nomi SSN nell'oggetto di un messaggio di posta elettronica:

New-TransportRule -Name "Social Security Number Block Rule" -SubjectOrBodyMatchesPatterns '\d\d\d-\d\d-\d\d\d\d' -RejectMessageEnhancedStatusCode "5.7.1" -RejectMessageReasonText "This message has been rejected because of content restrictions"

Per informazioni dettagliate su sintassi e parametri, vedere New-TransportRule.

L'esempio seguente mostra la nuova regola del flusso di posta:

Get-TransportRule "Social Security Number Block Rule" | Format-List

Per informazioni dettagliate sulla sintassi e sui parametri, vedere Get-TransportRule.