Partager via


Expressions régulières utilisées dans les règles de transport

S’APPLIQUE À :oui-img-162016 oui-img-192019 oui-img-se Édition d’abonnement

Vous pouvez utiliser des expressions régulières dans les prédicats de règle de transport Microsoft Exchange Server 2016 et 2019 pour faire correspondre des modèles de texte dans différentes parties d’un message (tels que les en-têtes de message, l’expéditeur, les destinataires, l’objet du message et le corps). Les prédicats sont utilisés par des conditions et des exceptions pour déterminer si une ou plusieurs actions configurées doivent être appliquées à 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, Office 365 clients devront s’appuyer sur des ressources informatiques internes. Par ailleurs, les clients Office 365 peuvent 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 EXO et EOP ne sont pas disponibles pour aider les clients avec des demandes de script RegEx personnalisées.

Souhaitez-vous rechercher les autres tâches de gestion relatives aux règles de transport ? Consultez la rubrique Managing Transport Rules.

Sommaire

Cet article contient les sections principales suivantes :

Expressions simples et expressions régulières

Pour comprendre les expressions régulières, vous devez d’abord comprendre les expressions simples. Une expression simple est une valeur spécifique que vous voulez mettre en correspondance exactement dans un message. Les prédicats utilisant des expressions simples correspondent à des mots spécifiques ou à des chaînes. Un exemple d’expression simple est le titre d’un document que votre organization ne souhaite pas distribuer en dehors du organization, par exemple , ventes annuelles Forecast.doc. Un élément de données dans un e-mail doit correspondre exactement à une expression simple pour satisfaire une condition ou une exception dans les règles de transport.

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 ne sont pas interprétés littéralement. Ces caractères 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. Ces expressions 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 raisonnablement pas mettre ces données en correspondance avec une expression simple parce qu’une telle expression exige de saisir chaque variante possible de la valeur que vous voulez détecter. Dans de nombreux cas, l’utilisation d’expressions simples pour de telles applications devient un défi logistique, et la mise en correspondance d’un grand nombre d’expressions simples dans le contenu des messages peut être gourmande en ressources. L’utilisation d’expressions régulières est plus efficace. Au lieu de spécifier toutes les variations possibles, vous pouvez configurer le prédicat de règle de transport pour rechercher un modèle de texte.

Expressions régulières dans Exchange Server 2016 et 2019

Dans Exchange Management Shell, vous pouvez utiliser des expressions régulières dans n’importe quel prédicat qui accepte la propriété de prédicat Patterns . Dans le console de gestion Exchange, vous pouvez utiliser des expressions régulières avec n’importe quelle condition ou exception qui contient les mots avec des modèles de texte. Pour plus d’informations sur les prédicats, voir Transport Rule Predicates.

Avertissement

Vous devez tester soigneusement les expressions régulières que vous construisez pour vous assurer qu’elles produisent les résultats attendus. Une expression régulière mal configurée pourrait produire des correspondances inattendues et entraîner un comportement de règle de transport indésirable. Ces implications peuvent entraîner des actions indésirables sur les messages et le contenu des messages, ce qui peut entraîner une perte de données lorsque des actions telles que le rejet ou le rebond d’un message sont utilisées. En outre, les expressions régulières complexes peuvent affecter les performances de transport des e-mails. 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 Servers 2016 et 2019 :

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.
* Le caractère générique ( * ) établit une correspondance avec zéro ou plusieurs instances du caractère précédent. Par exemple, ab*c correspond aux chaînes suivantes : ac, abc et abbbbc.
( ) Les parenthèses servent de délimiteurs de regroupement. Par exemple, a(bc)* établit une correspondance avec les chaînes suivantes : a, abc, abcbc, abcbcbc, etc.
\ 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 : barre oblique inverse ( \ ) ; Pipe; Astérisque ( * ) ; Parenthèse ouvrante ( ) ; Parenthèse fermante ( ) ; Caret ( ^ ) ; Signe dollar ( $ ). Par exemple, si vous souhaitez faire correspondre une chaîne qui contient (525), vous devez taper (525).
^ L’accent circonflexe (^) indique que la chaîne de modèle qui suit doit se trouver au début de la chaîne de texte recherchée. 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 kim@research.contoso.com, mais ne correspond kim@contoso.com.aupas à .

Construction d’expressions régulières

En vous référant au tableau précédent, vous pouvez construire une expression régulière qui met en correspondance le modèle des données que vous recherchez. 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. Ensuite, déterminez la chaîne de modèle dans le tableau qui représente ce caractère ou groupe de caractères, puis ajoutez cette chaîne de modèle à l’expression régulière. Lorsque vous avez terminé, vous disposez d’une expression régulière construite entièrement.

Par exemple, l’expression régulière suivante correspond à des 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. Cet exemple d’une expression régulière 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 : cette partie nécessite que trois chiffres soient affichés en premier.
  • ((\s|.|-|)|)\s) : cette partie 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 : cette partie nécessite que trois chiffres numériques s’affichent ensuite.
  • (\s|.|-) : cette partie nécessite qu’un espace, un point ou un trait d’union existe après le nombre à trois chiffres.
  • \d\d\d\d : cette partie nécessite que quatre chiffres numériques s’affichent ensuite.

L’expression régulière ci-dessus correspondra aux valeurs d’exemple suivantes :

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

Création d’une règle de transport qui utilise une expression régulière

Cet exemple crée une règle de transport dans PowerShell qui utilise des expressions régulières pour faire correspondre des SSN 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"

Cet exemple permet d’afficher la nouvelle règle de transport.

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