Expressions régulières dans les règles de flux de messagerie dans Exchange Online

Vous pouvez utiliser des expressions régulières (RegEx) dans des conditions et des exceptions dans les règles de flux de courrier (également appelées règles de transport) pour faire correspondre des modèles de texte dans différentes parties d’un message (par exemple, les en-têtes de message, l’expéditeur, les destinataires, l’objet et le corps du message). Les conditions et exceptions déterminent si l’action de la règle doit être appliquée à un message électronique.

Remarque

En raison des écarts dans les environnements clients, les services de support technique Microsoft (CSS) ne peuvent pas participer au développement ou au test de scripts d’expression régulière personnalisés (« scripts RegEx »). Pour le développement, le test et le débogage de scripts personnalisés RegEX, les clients Microsoft 365 doivent s’appuyer sur des ressources informatiques internes. Les clients Microsoft 365 peuvent également choisir d’utiliser une ressource de conseil externe telle que les services de conseil Microsoft (MCS). Quelle que soit la ressource de développement de script, les ingénieurs du support technique CSS ne sont pas disponibles pour aider les clients avec des demandes de script RegEx personnalisées.

Vous recherchez des tâches de gestion liées aux règles de flux de messagerie ? Consultez Règles de flux de courrier (règles de transport) dans Exchange Online.

Expressions simples et expressions régulières

Une expression simple est une valeur spécifique que vous voulez mettre en correspondance exactement dans un message. Les conditions et exceptions utilisant des expressions simples correspondent à des mots ou des chaînes de texte spécifiques. Par exemple, une condition de règle de flux de messagerie qui recherche des documents nommés Ventes annuelles Forecast.docx.

Une expression régulière est une notation concise et flexible servant à rechercher des modèles de texte dans un message. La notation se compose de deux types de caractères de base :

  • Caractères littéraux : texte qui doit exister dans la chaîne cible. Ces caractères sont des caractères normaux, tels qu’ils sont tapés.
  • Métacharacteurs : un ou plusieurs caractères spéciaux qui indiquent comment le texte peut varier dans la chaîne cible.

Vous pouvez utiliser des expressions régulières pour analyser rapidement les messages électroniques afin de trouver des modèles de texte spécifiques. Les expressions régulières vous permettent de détecter des messages avec des types de contenu spécifiques, tels que des numéros de sécurité sociale (SSN), des numéros de brevet et des numéros de téléphone.

Vous ne pouvez pas raisonnablement faire correspondre des données de variable avec une expression simple, car une expression simple nécessite chaque variation possible de la valeur pour être détectée. La mise en correspondance d’un grand nombre d’expressions simples dans le contenu du message peut être gourmande en ressources. L’utilisation d’expressions régulières est plus efficace. Au lieu de spécifier toutes les variantes possibles, vous pouvez configurer la condition de règle de flux de messagerie pour rechercher un modèle de texte.

Expressions régulières dans Exchange Online

Dans Exchange Online PowerShell, les noms de paramètres qui se terminent par MatchesPatterns utilisent des expressions régulières. Dans le Centre d’administration Exchange (EAC), les conditions et les noms d’exceptions qui se terminent par ... correspond à l’un de ces modèles de texte utilisent des expressions régulières . Pour plus d’informations sur les conditions de règle de flux de messagerie et les exceptions dans Exchange Online, consultez Conditions et exceptions de règle de flux de messagerie (prédicats) dans Exchange Online.

Avertissement

Testez soigneusement les expressions régulières. Une expression régulière mal configurée peut produire des correspondances inattendues et entraîner un comportement de règle de flux de courrier indésirable, notamment :

  • Actions indésirables sur les messages et le contenu des messages.
  • Perte de données potentielle.

Les expressions régulières complexes peuvent également affecter les performances du flux de messagerie. Testez vos expressions régulières dans un environnement de test avant de les implémenter dans un environnement de production.

Le tableau suivant répertorie les chaînes de modèle que vous pouvez utiliser pour créer une expression régulière de correspondance de modèle dans Exchange Online :

Chaîne de modèle Description
\S La chaîne de modèle \S établit une correspondance avec tout caractère autre qu’une espace.
\s La chaîne de modèle \s établit une correspondance avec toute espace vide simple.
\D La chaîne de modèle \D établit une correspondance avec tout caractère non numérique.
\d La chaîne de modèle \d établit une correspondance avec tout caractère numérique simple.
\w La chaîne de modèle \w correspond à n’importe quel caractère Unicode unique classé comme une lettre ou un chiffre décimal.
\W La chaîne de modèle \W établit une correspondance avec tout caractère Unicode non classé comme lettre ou chiffre décimal.
* L’astérisque ( * ) correspond à zéro ou plusieurs instances du caractère précédent. Par exemple, ab*c correspond aux chaînes suivantes : ac, abcet abbbbc.
| Le caractère Pipe ( | ) agit comme un opérateur OR. Par exemple, « contoso|fabrikam » correspond à toutes les instances de contoso ou fabrikam.
( ) Les parenthèses servent de délimiteurs de regroupement. Par exemple, \a(bc)*\ correspond aux chaînes suivantes : a, abc, abcbc, abcbcbc, et ainsi de suite.
\ Une barre oblique inverse est utilisée comme caractère d’échappement avant un caractère spécial. Les caractères spéciaux sont des caractères utilisés dans les chaînes de modèle :
  • Backslash \
  • Canal |
  • Astérisque *
  • Parenthèse ouvrante (
  • Parenthèse fermante )
  • Caret ^
  • Signe dollar $

Par exemple, si vous souhaitez faire correspondre une chaîne qui contient (525), utilisez \(525\).

^ Le caractère d’insertion ( ^ ) indique que la chaîne de modèle qui suit l’insertion doit exister au début de la chaîne de texte mise en correspondance. Par exemple, ^fred@contoso correspond fred@contoso.com à et mais fred@contoso.co.uk pas alfred@contoso.com.
$ Le caractère signe dollar ( $ ) indique que la chaîne de modèle précédente doit exister à la fin de la chaîne de texte mise en correspondance. Par exemple, contoso.com$ correspond adam@contoso.com à et mais kim@research.contoso.com ne correspond kim@contoso.com.aupas à .

Construction d’expressions régulières

À l’aide du tableau précédent, vous pouvez construire une expression régulière qui correspond au modèle des données auxquelles vous souhaitez faire correspondre :

  • En travaillant de gauche à droite, examinez chaque caractère ou groupe de caractères dans les données que vous voulez mettre en correspondance.
  • Lisez la description de chaque chaîne de modèle pour déterminer la manière dont elle s’applique aux données que vous recherchez.
  • Déterminez la chaîne de modèle dans le tableau qui représente ce caractère ou ce groupe de caractères, puis ajoutez cette chaîne de modèle à l’expression régulière.

Remarque

Les expressions régulières utilisées dans les règles de transport ne respectent PAS la casse.

L’exemple suivant correspond aux numéros de téléphone nord-américains aux formats 425 555-0100 et 425.555.0100 :

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

Vous pouvez développer cet exemple en ajoutant le format de numéro de téléphone (425) 555-0100 où l’indicatif de la zone est entre parenthèses.

L’exemple suivant correspond aux trois formats de numéros de téléphone.

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

Vous pouvez analyser l’exemple précédent comme suit :

  • \d\d\d: nécessite que trois chiffres numériques s’affichent en premier.
  • ((\s|.|-|\)|\)\s): nécessite l’existence d’un espace, d’un point ou d’un trait d’union après le nombre à trois chiffres. Les chaînes de recherche de caractères sont placées entre des délimiteurs de groupe et séparées par des caractères |. Cette séparation signifie qu’un seul des caractères spécifiés à l’intérieur des délimiteurs de regroupement peut exister à cet emplacement dans la chaîne mise en correspondance. Pour la séparation entre l’indicatif régional et les trois chiffres suivants, il recherche également une parenthèse fermée, ou une parenthèse fermée et un espace.
  • \d\d\d: nécessite que trois chiffres numériques s’affichent ensuite.
  • (\s|.|-): nécessite l’existence d’un espace, d’un point ou d’un trait d’union après le nombre à trois chiffres.
  • \d\d\d\d: nécessite que exactement quatre chiffres numériques s’affichent ensuite.

L’exemple précédent correspond aux valeurs suivantes :

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

Création d’un flux de messagerie qui utilise une expression régulière

L’exemple suivant crée une règle de flux de courrier dans Exchange Online PowerShell qui utilise des expressions régulières pour faire correspondre les noms de sécurité réseau dans l’objet d’un message électronique :

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"

Pour obtenir des informations détaillées sur la syntaxe et les paramètres, voir New-TransportRule.

L’exemple suivant montre la nouvelle règle de flux de messagerie :

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

Pour obtenir des informations détaillées sur la syntaxe et les paramètres, voir Get-TransportRule.