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

 

S’applique à : Exchange Server 2010 SP2, Exchange Server 2010 SP3

Dernière rubrique modifiée : 2016-03-18

Vous pouvez utiliser des expressions régulières dans les prédicats de règle de transport MicrosoftExchange Server 2010 pour faire correspondre des modèles de texte à différents endroits d’un message (en-têtes, expéditeur, destinataires, objet et corps du message). 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.

RemarqueRemarque :
En raison des variances des environnements des clients, les services de support technique Microsoft (CSS) ne peuvent pas participer au développement ou au test de scripts personnalisés d’expressions régulières (« scripts RegEx »). Pour le développement, le test et le débogage de scripts personnalisés RegEx, les clients Office 365 doivent 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 de support technique CSS EXO et EOP ne sont pas disponibles pour aider les clients à résoudre des demandes relatives à des scripts RegEx personnalisés.

Souhaitez-vous rechercher les autres tâches de gestion relatives aux règles de transport ? Voir Gestion des règles de transport.

Contenu de cette rubrique

Expressions simples et expressions régulières

Expressions régulières dans Exchange 2010

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

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 de façon exacte 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 organisation ne souhaite pas distribuer à l’extérieur, tel que Prévisions commerciales annuelles.doc. Un élément de données dans un message électronique doit correspondre exactement à une expression simple pour satisfaire à une condition ou une exception dans des 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. Il s’agit de caractères normaux, tels que vous les avez saisis.

  • Métacaractères   Un ou plusieurs caractères spéciaux qui ne sont pas interprétés littéralement. Ces erreurs indiquent comment le texte peut varier dans la chaîne cible.

Vous pouvez utiliser des expressions régulières pour analyser rapidement des messages électroniques afin d’y trouver des modèles de texte spécifiques. Cela vous permet de détecter des messages avec des types de contenu spécifiques, tels que des numéros de sécurité sociale, 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 relève du défi logistique, et mettre en correspondance un grand nombre d’expressions simples dans le contenu des messages peut mobiliser beaucoup de ressources. L’utilisation d’expressions régulières est généralement 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 2010

Dans Exchange Management Shell, vous pouvez utiliser des expressions régulières dans tout prédicat qui accepte la propriété de prédicat Patterns. Dans Exchange Management Console, vous pouvez utiliser des expressions régulières avec toute condition ou exception contenant les mots avec modèles de texte. Pour plus d’informations sur les certificats, voir Prédicats de règle de transport.

AttentionAttention :
Vous devez soigneusement tester les expressions régulières que vous construisez pour vous assurer qu’elles produisent les résultats escomptés. 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. Cela peut entraîner des actions indésirables sur les messages et leur contenu, susceptibles de provoquer la perte de données lors du rejet ou du transfert d’un message par exemple. En outre, des expressions régulières complexes peuvent affecter les performances de transport de courrier. 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 toutes les chaînes de modèle que vous pouvez utiliser pour créer une expression régulière de mise en correspondance de modèle dans Exchange 2010.

Chaînes de modèle

Chaîne de modèle Description

\S

La chaîne de modèle \S établit une correspondance avec tout caractère autre qu’un espace.

\s

La chaîne de modèle \s établit une correspondance avec tout 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 établit une correspondance avec tout caractère Unicode classé comme lettre ou 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 ( | ) exécute une fonction OR.

*

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 établit une correspondance avec les chaînes suivantes : ac, abc, abbbbc.

( )

Les parenthèses servent de délimiteurs de regroupement. Par exemple, a(bc)* correspond aux 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 ( \ )

  • Barre verticale ( | )

  • Astérisque ( * )

  • Parenthèse ouvrante ( ( )

  • Parenthèse fermante ( ) )

  • Accent circonflexe ( ^ )

  • Symbole dollar ( $ )

Par exemple, si vous voulez établir une correspondance avec une chaîne contenant (525), saisissez \(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 fred@contoso.co.uk mais pas à alfred@contoso.com.

$

Le signe dollar ( $ ) indique que la chaîne de modèle qui précède doit se trouver à la fin de la chaîne de texte recherchée.

Par exemple, contoso.com$ établit une correspondance avec adam@contoso.com et kim@research.contoso.com, pas avec kim@contoso.com.au.

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 portion requiert la présence de trois caractères numériques en première position.

  • ((\s|.|-\)|\)\s)   Cette portion requiert la présence d’un espace, d’un tiret ou d’un point 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 |. Cela signifie qu’un seul des caractères spécifiés dans les délimiteurs de regroupement peut exister dans cette position dans la chaîne recherchée. Pour la séparation entre le code de zone et les trois chiffres suivants, il recherche également une parenthèse fermante ou une parenthèse fermante suivie d’un point.

  • \d\d\d   Cette portion requiert la présence de trois caractères numériques.

  • (\s|.|-)   Cette portion requiert la présence d’un espace, d’un point ou d’un tiret après le nombre à trois chiffres.

  • \d\d\d\d   Cette portion requiert la présence de quatre caractères numériques.

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 utilisant une expression régulière

Cet exemple illustre la création d’une règle de transport dans le Shell utilisant des expressions régulières pour établir une correspondance avec des numéros de sécurité sociale 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

 © 2010 Microsoft Corporation. Tous droits réservés.