Rubriques Connexes

# À propos des expressions rationnelles

Par expression rationnelle, on entend un groupe de lettres, de chiffres et de caractères spéciaux utilisés pour correspondre à des données. Dans la configuration de votre Firebox, vous pouvez utiliser des expressions rationnelles compatibles avec Perl (PCRE-Perl Compatible Regular Expressions) correspondant à certains types de trafic dans les actions de proxy. Par exemple, vous pouvez utiliser une expression rationnelle pour bloquer les connexions vers certains sites Web et autoriser les connexions vers d'autres sites Web. Vous pouvez aussi refuser des connexions SMTP quand le destinataire ne bénéficie pas d'une adresse Internet valable pour votre entreprise. Par exemple, si vous voulez bloquer les parties d'un site Web qui transgressent les directives de votre entreprise concernant l'utilisation d'Internet, vous pouvez utiliser une expression rationnelle dans la catégorie Chemins URL de la configuration de proxy HTTP.

## Consignes générales

- Dans le système d'exploitation Fireware, les expressions rationnelles sont sensibles à la casse— Au moment de créer une expression rationnelle, prenez soin de faire correspondre la casse des lettres de votre expression rationnelle aux lettres du texte équivalent. Vous pouvez changer l'expression rationnelle de façon qu'elle ne soit pas sensible à la casse ; il suffit pour cela d'introduire le modificateur (?i) au tout début d'un groupe.
- Dans le système d'exploitation Fireware, les expressions rationnelles diffèrent des caractères génériques de MS-DOS et Unix — Lorsque vous modifiez des fichiers sous MS-DOS ou via l'invite de commande Windows, vous pouvez utiliser ? ou * pour faire concorder un ou plusieurs caractères d'un nom de fichier. Ces caractères génériques d'une grande simplicité ne fonctionnent pas de la même manière dans Fireware.

## Construction d'une expression rationnelle

L'expression rationnelle dans sa forme la plus simple est confectionnée à partir du texte que vous voulez faire correspondre. Les lettres, chiffres et autres caractères imprimables correspondent tous aux mêmes lettres, chiffres ou caractères que vous tapez. Une expression rationnelle faite de lettres et de chiffres peut correspondre uniquement à une chaîne de caractères qui inclut l'ensemble des ces lettres et chiffres dans l'ordre.

Exemple : lent correspond à lent, lente et lentement, ainsi qu'à bon nombre d'autres chaînes.

Le système d'exploitation Fireware accepte toutes les chaînes de caractères incluant l'expression rationnelle. Il n'est pas rare qu'une expression rationnelle corresponde à plusieurs chaînes. Si vous utilisez une expression rationnelle comme source d'une règle de refus, vous risquez de bloquer du trafic réseau par accident. Nous recommandons de tester l'intégralité de vos expressions rationnelles avant d'enregistrer la configuration sur votre Firebox.

Pour faire correspondre différentes chaînes de caractères en même temps, vous devez utiliser un caractère spécial. Le caractère spécial le plus courant est le point (.), qui s'apparente à un caractère générique. Quand vous introduisez un point dans une expression rationnelle, il correspond à n'importe quel caractère, espace ou tabulation. Le point ne correspond pas aux sauts de ligne (\r\n ou \n).

Exemple : f..t correspond à foot, feet, f#t, f -t et f\t3t.

Pour faire correspondre un caractère spécial, comme le point, ajoutez une barre oblique inverse (\) avant le caractère. Si vous omettez d'ajouter la barre oblique inverse au caractère spécial, la règle risque de ne pas fonctionner correctement. Il n'est pas utile d'ajouter une deuxième barre oblique inverse si le caractère a d'ordinaire recours à une barre oblique inverse, comme \t (tabulation horizontale).

Vous devez ajouter une barre oblique inverse à chacun des caractères spéciaux suivants pour faire correspondre le vrai caractère : ? . * | + $ \ ^ ( ) [

Exemple : \$9\,99 correspond à $9,99

## Caractères hexadécimaux

Pour faire correspondre des caractères hexadécimaux, utilisez \x ou %0x%. Les caractères hexadécimaux ne sont pas concernés par le modificateur insensible à la casse.

Exemple : \x66 ou %0x66% correspond à f, mais pas à F.

## Répétition

Pour faire correspondre un nombre variable de caractères, utilisez un modificateur de répétition. Vous pouvez appliquer le modificateur à un caractère seul, ou à un groupe de caractères. Les types de modificateurs de répétition sont au nombre de quatre :

- Les nombres compris entre accolades (par ex. {2,4}) correspondent à au moins le premier nombre et au plus le deuxième nombre d'occurrences de ce qui précède.
  Exemple : 3{2,4} correspond à 33, 333 ou 3333. Il ne correspond pas à 3 ni à 33333.
- Le point d'interrogation (?) correspond à zéro ou une occurrence du caractère, de la classe ou du groupe qui le précède.
  Exemple : me?et correspond à met et meet.
- Le signe Plus (+) correspond à une ou plusieurs occurrences du caractère, de la classe ou du groupe qui précède.
  Exemple : me+t correspond à met, meet et meeeeeeeeet.
- L'astérisque (*) correspond à zéro, une ou plusieurs occurrences du caractère, de la classe ou du groupe qui précède.
  Exemple : me*t correspond à mt, met, meet et meeeeeeeeet.

Pour appliquer les modificateurs à beaucoup de caractères à la fois, vous devez créer un groupe. Pour regrouper une chaîne de caractères, mettez celle-ci entre parenthèses.

Exemple : ba(na)* correspond à ba, bana, banana et banananananana.

## Classes de caractères

Pour faire correspondre un caractère d'un groupe et créer une classe de caractères, remplacez les parenthèses par des crochets. Vous pouvez appliquer des modificateurs de répétition à la classe de caractères. L'ordre des caractères à l'intérieur de la classe n'a pas d'importance.

Les seuls caractères spéciaux admis dans une classe de caractères sont le crochet de fermeture (]), la barre oblique inverse (\), le signe d'intercalage (^) et le tiret (-).

Exemple : gr[ae]y correspond à gray et grey.

Si vous utilisez un signe d'intercalage dans la classe de caractères, ne le mettez pas en premier position.

Si vous utilisez un tiret dans la classe de caractères, mettez-le en premier position.

Une classe de caractères inversée correspond à tout sauf les caractères précisés. Tapez un signe d'intercalage (^) au début d'une classe de caractères pour l'inverser.

Exemple : [Qq][^u] correspond à Qatar, mais pas à question ni à Iraq.

## Plages

Les classes de caractères sont souvent utilisées avec des plages de caractères pour la sélection d'une lettre ou d'un nombre. Par plage, on entend deux lettres ou nombres, séparés par un tiret (-), qui marquent le début et la fin d'un groupe de caractères. Tout caractère dans la plage peut convenir. Si vous ajoutez un modificateur de répétition à une classe de caractères, la classe qui précède est répétée.

Exemple : [1-3][0-9]{2} correspond à 100, 399 ou n'importe quelle valeur intermédiaire.

Certaines plages fréquemment utilisées disposent d'une notation sténographique. Vous pouvez utiliser les classes de caractères sténographiques à l'intérieur ou à l'extérieur d'autres classes de caractères. Une classe de caractères sténographique inversée correspond à l'opposé de ce à quoi la classe de caractères sténographique correspond. Le tableau ci-dessous répertorie plusieurs classes de caractères sténographiques courantes et leurs valeurs inversées.

Classe équivalente à | Inversée équivalente à
--- | ---
\w N'importe quelle lettre ou n'importe quel chiffre [A-Za-z0-9] | \W Pas une lettre ni un chiffre
\s N'importe quel espace blanc [ \t\r\n] | \S Pas un espace blanc
\d N'importe quel chiffre [0-9] | \D Pas un chiffre

## Points d'ancrage

Pour faire correspondre le début et la fin d'une ligne, vous devez utiliser un point d'ancrage. Le signe d'intercalage (^) correspond au début d'une ligne, et le symbole du dollar ($) à la fin d'une ligne.

Exemple : ^am.*$ correspond à ampère si « ampère » est le seul mot de la ligne. Il ne correspond pas au mot dame.

Vous pouvez utiliser \b ou \B pour faire correspondre la limite d'un mot ou toute position sauf la limite d'un mot, respectivement.

Les limites de mot sont au nombre de trois :

- Avant le premier caractère dans la chaîne de caractères, si le premier caractère est un caractère mot (\w)•
- Après le dernier caractère dans la chaîne de caractères, si le dernier caractère est un caractère mot (\w)•
- Entre un caractère mot (\w) et un caractère non-mot (\W)

## Alternation

Vous pouvez utiliser l'alternation pour faire correspondre une expression rationnelle simple parmi plusieurs d'entre elles possibles. L'opérateur d'alternation dans une expression rationnelle est la barre verticale (|). Il ressemble à l'opérateur booléen OU.

Exemple : m(oo|a|e)n correspond à la première occurrence de moon, man ou men.

## Expressions rationnelles usuelles

Correspondent au type de contenu PDF (type MIME)

^%PDF-

Correspondent à n'importe quelle adresse IP valable

(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9] [0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]? [0-9][0-9]?)

Correspondent à la plupart des adresses Internet

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b

#### Voir aussi

À propos des règles et des ensembles de règles

Ajouter, modifier ou supprimer des règles

Couper et coller les définitions de règles

Modifier l'ordre des règles

Envoyer Vos Commentaires • Obtenir de l'Aide • Documentation Complète des Produits • Recherche Technique