|
Utilisation d'expressions régulières dans vos règles de filtrage |
Faire défiler Précédente Haut de page Suivante Plus |
Le système de filtrage de contenu prend en charge les recherches par expressions régulières. Il s'agit d'un système polyvalent qui vous permet de chercher non seulement des chaînes de texte spécifiques, mais aussi des motifs de texte . Les expressions régulières contiennent un mélange de texte brut et de caractères spéciaux qui indiquent le type de correspondance à effectuer, et peuvent ainsi rendre vos règles de Filtre de contenu plus puissantes et mieux ciblées.
Une expression régulière (regexp) est un modèle de texte composé d'une combinaison de caractères spéciaux appelés métacaractères et de caractères alphanumériques, ou "littéraux" (abc, 123, etc.). Ce motif est utilisé pour établir une correspondance avec des chaînes de texte, le résultat de la correspondance étant soit positif, soit négatif. Les Remplacer sont principalement utilisés pour les correspondances de textes réguliers et pour la recherche et le remplacement.
Les métacaractères sont des caractères spéciaux qui ont des fonctions et des utilisations spécifiques dans les expressions régulières. L'implémentation des expressions rationnelles dans le système de filtrage de contenu MDaemon autorise les métacaractères suivants :
\ | () [] ^ $ * + ? . <>
Métacaractère |
Description du métacaractère |
\ |
Lorsqu'elle est utilisée avant un métacaractère, la barre oblique inverse ("\") fait en sorte que le métacaractère soit traité comme un caractère littéral. Cela est nécessaire si vous souhaitez que l'expression régulière cherche l'un des caractères spéciaux utilisés comme métacaractères. Exemple : pour Chercher "+", votre expression doit inclure "\+". |
| |
Le caractère d'alternance (également appelé "ou" ou "barre") est utilisé lorsque vous souhaitez que l'une des expressions situées du côté du caractère corresponde à la chaîne cible. L'expression rationnelle "abc|xyz" correspondra à toute occurrence de "abc" ou de "xyz" lors d'une recherche dans une chaîne de texte. |
[...] |
Un ensemble de caractères entre crochets ("[" et "]") signifie que n'importe quel caractère de l'ensemble peut correspondre à la chaîne de texte recherchée. Un tiret ("-") entre les caractères entre crochets indique une "range of". Exemple : Chercher la chaîne "abc" avec l'expression rationnelle "[a-z]" donnera trois résultats : "a", "b" et "c". L'expression "[az]" ne donnera qu'un seul résultat : "a". |
^ |
Indique le début de la ligne. Dans la chaîne cible, "abc ab a", l'expression "^a" ne donnera qu'une seule correspondance : le premier caractère de la chaîne cible. Dans la regexp "^ab", il y aura également une correspondance, à savoir les deuxpremiers caractères de la chaîne cible. |
[^...] |
La caret ("^") qui suit immédiatement le crochet gauche ("[") a une signification différente. Elle est utilisée pour exclure les caractères restants entre crochets de la correspondance avec la chaîne cible. L'expression "[^0-9]" indique que le caractère cible ne doit pas être un chiffre. |
(...) |
La parenthèse affecte l'ordre d'évaluation du motif et sert également d' expression balisée pouvant être utilisée dans les expressions derecherche et de remplacement. Les résultats d'une recherche avec une expression régulière sont conservés temporairement et peuvent être utilisés dans l' expression de remplacement pour construire une nouvelle expression. Dans l' expression de remplacement, vous pouvez inclure un caractère "0", qui sera remplacé par la sous-chaîne trouvée par l'expression régulière au cours de la recherche. Ainsi, si l' expression de recherche "a(bcd)e" trouve une sous-chaîne correspondante, l' expression deremplacement "123-$0-123" remplacera le texte correspondant par "123-abcde-123". De même, vous pouvez utiliser les caractères spéciaux "$1", "$2", "$3", etc. dans l' expression de remplacement. Ces caractères ne seront remplacés que par les résultats de l' expression balisée au lieu de la correspondance de la sous-chaîne entière. Le nombre qui suit la barre oblique inverse indique l'expression balisée à laquelle vous souhaitez faire référence (dans le cas d'une expression balisée contenant plusieurs expressions balisées). Exemple : si votre expression de recherche est "(123)(456)" et votre expression de remplacement "a-$2-b-$1", la sous-chaîne correspondante sera remplacée par "a-456-b-123", tandis que l' expression deremplacement "a-$0-b" sera remplacée par "a-123456-b". |
$ |
Le signe du dollar ("$") indique la fin de la ligne. Dans la chaîne de texte "13 321 123", l'expression "3$" ne donnera qu'une seule correspondance, le dernier caractère de la chaîne. Dans l'expression rationnelle "123$", il y aura également une correspondance, à savoir les troisderniers caractères de la chaîne cible. |
* |
Le quantificateur astérisque ("*") indique que le caractère situé à sa gauche doit correspondre à zéro ou plusieurs occurrences du caractère dans une ligne. Ainsi, "1*abc" correspondra aux textes "111abc" et "abc". |
+ |
Dans la même veine que le quantificateur astérisque, le quantificateur "+" indique que le caractère situé à sa gauche doit correspondre à une ou plusieurs occurrences du caractère dans une ligne. Ainsi, "1+abc" ne contiendra pas le texte "111abc" mais pas "abc". |
? |
Le point d'interrogation (" ?") indique que le caractère à sa gauche doit correspondre à zéro ou une fois. |
. |
Le métacaractère point ou point (".") correspond à n'importe quel autre caractère. Ainsi, ".+abc" correspondra à "123456abc", et "a.c" à "aac", "abc", "acc", etc. |
Conditions et actions admissibles
Les expressions régulières peuvent être utilisées dans n'importe quelle condition de règle d'En-tête From:. Exemple : toute règle utilisant la condition "If the FROM HEADER contains". Les expressions régulières peuvent également être utilisées dans la condition "If the MESSAGE BODY contains".
Les expressions régulières peuvent être utilisées dans deux actions derègles du Filtre de contenu : "Rechercher et remplacer des mots dans un En-tête" et "Rechercher et remplacer des mots dans le Corps du message".
|
Lesexpressions régulières utilisées dans les conditions desrègles du Filtre de contenu ne tiennent pas compte de la casse. La casse n'est pas prise en compte. La sensibilité à la casse dans les expressions régulières utilisées dans les actions desrègles du Filtre de contenu est facultative. Lors de la création de l'expression régulière dans l'action de la règle, vous aurez la possibilité d'activer/désactiver la sensibilité à la casse. |
Configuration d'une expression rationnelle dans une condition de règle
Pour configurer une condition d'en-tête ou de corps de message afin d'utiliser une expression régulière :
1.Dans la boîte de dialogue Créer une règle, cliquez sur la case à cocher correspondant à la condition d'en-tête ou de corps de message que vous souhaitez insérer dans votre règle.
2.Dans la zone de résumé située en bas de la boîte de dialogue Créer une règle, cliquez sur le lien"contient des chaînes spécifiques" qui correspond à la condition que vous avez sélectionnée à l'étape 1. Ce texte ouvre la boîte de dialogue Texte à rechercher.
3.Dans la zone "Chaînes pour caractères spécifiées", cliquez sur le lien "contient".
4.Choisissez "Matches Regular Expression" dans la liste déroulante et cliquez sur OK.
5.Si vous n'avez pas besoin d'utiliser la boîte de dialogue Tester l'expression régulière, saisissez votre expression régulière dans la zone de texte prévue à cet effet, cliquez sur Ajouter, puis passez à l'étape 8.
6.Tapez votre expression régulière dans la zone de texte "Rechercher expression". Pour simplifier le processus, nous avons prévu un menu de raccourcis qui peut être utilisé pour insérer facilement les métacaractères souhaités dans votre expression rationnelle. Cliquez sur le bouton ">" pour accéder à ce menu. Lorsque vous choisissez une option dans ce menu, le métacaractère correspondant est inséré dans l'expression et le point d'insertion du texte est déplacé à l'endroit approprié requis par le caractère.
7.Dans la zone de texte prévue à cet effet, utilisez le Type ou le texte que vous souhaitez utiliser pour tester votre expression, puis cliquez sur Test. Lorsque vous avez terminé de tester votre expression, cliquez sur OK.
8.Cliquez sur OK.
9.Poursuivez la création de votre règle normalement.
Configuration d'une Regexp dans l'action d'une règle
Pour configurer une action "Chercher et remplacer des mots dans..." afin d'utiliser une expression régulière :
1.Dans la boîte de dialogue Créer une règle, cliquez sur la case à cocher correspondant à l'action"Chercher et remplacer des mots dans..." que vous souhaitez insérer dans votre règle.
2.Dans la zone de résumé au bas de la boîte de dialogue Créer une règle, cliquez sur le lien"specify information" qui correspond à l'action que vous avez sélectionnée à l'étape 1. La boîte de dialogue Chercher et remplacer s'ouvre alors.
3.Dans le cas où vous avez choisi l'action"Chercher...en-tête" à l'étape 1, utilisez la liste déroulante fournie pour choisir l'en-tête que vous souhaitez rechercher, ou tapez un en-tête dans la boîte si l'en-tête souhaité n'est pas répertorié. Si vous n'avez pas choisi l'action "Chercher dans l'en-tête" à l'étape 1, ignorez cette étape.
4.Cherchez l' expression derecherche que vous souhaitez utiliser dans cette action. Pour simplifier le processus, nous avons fourni un menu de raccourcis qui peut être utilisé pour insérer facilement les métacaractères souhaités dans votre expression de recherche. Cliquez sur le bouton ">" pour accéder à ce menu. Lorsque vous choisissez une option dans ce menu, le métacaractère correspondant est inséré dans l'expression et le point d'insertion du texte est déplacé à l'endroit approprié requis par le caractère.
5. Dans cette action, utilisez le Type d'expression de remplacement que vous souhaitez utiliser. Comme pour la Rechercher expression, nous avons prévu un menu de raccourcis pour les métacaractères pour cette option également. Laissez cette zone de texte vide si vous souhaitez supprimer une sous-chaîne correspondante au lieu de la Remplacer par un autre texte.
6.Cliquez sur "Respecter la casse" si vous souhaitez que l'expression soit sensible à la casse.
7.Cliquez sur Expression régulière si vous souhaitez que les chaînes de recherche et de remplacement soient traitées comme des expressions régulières. Dans le cas contraire, chaque chaîne sera traitée comme une simple recherche et un remplacement de sous-chaîne, c'est-à-dire qu'elle cherchera une correspondance littérale exacte du texte au lieu de le traiter comme une expression régulière.
8.Si vous n'avez pas besoin de tester votre expression, passez cette étape. Si vous devez tester votre expression, cliquez sur "Exécuter le test". Dans la boîte de dialogue Testeur de recherche et de remplacement, saisissez vos expressions de recherche et de remplacement et le texte que vous souhaitez tester, puis cliquez sur Test. Lorsque vous avez terminé de tester vos expressions rationnelles, cliquez sur OK.
9.Cliquez sur OK.
10.Poursuivez la création de votre règle normalement.