Expressions rationnelles

Une expression rationnelle est une manière de décrire un texte. Par exemple, le texte « 32 » peut être décrit comme un texte contenant deux chiffres. Toutefois, un autre texte contient également deux chiffres, comme « 12 » ou « 00 ». Nous disons que ces textes correspondent à l'expression rationnelle. (Les expressions rationnelles Design Studio respectent la syntaxe Perl5.)

Une expression rationnelle est composée de caractères normaux et de symboles spéciaux. Chaque symbole spécial a sa propre signification. Par exemple, le symbole spécial « . » (point) signifie n'importe quel caractère unique et correspond à tous les caractères uniques, par exemple « a », « b », « 1 », « 2 », etc.

Symboles spéciaux

Vous pouvez utiliser les symboles spéciaux suivants dans une expression rationnelle.

Symbole spécial Description

.

n'importe quel caractère unique, par exemple « a », « 1 », « / », « ? », « . », etc.

\d

Tout chiffre décimal, par exemple « 0 », « 1 », ..., « 9 ».

\D

Tout non-chiffre, par exemple similaire à « . » à l'exclusion de « 0 », « 1 », ..., « 9 ».

\s

N'importe quel caractère d'espacement, par exemple «  », tabulation et retour chariot. Voir également Remarque sur les caractères Espace.

\S

N'importe quel caractère à l'exception des caractères d'espacement, par exemple « . », sauf «  », tabulation et retour chariot

\w

Tout caractère de mot (alphanumérique), par exemple « a », ..., « z », « A », ..., « Z », « 0 », ..., « 9 ».

\W

Tout caractère non-mot (alphanumérique), par exemple similaire à « . » à l'exclusion de « a », ..., « z », « A », ..., « Z », « 0 », ..., « 9 ».

\n

Un caractère de saut de ligne.

\r

Un caractère de retour chariot.

\t

Un caractère de tabulation.

[abc]

Tout caractère de l'ensemble a, b ou c.

[^abc]

Tout caractère n'appartenant pas à l'ensemble a, b ou c.

[a-z]

Tout caractère compris entre a et z, inclus.

a|b

Correspond à tout ce que la sous-expression rationnelle « a » correspondrait, ou à tout ce que la sous-expression rationnelle « b » correspondrait.

Si vous voulez qu'un caractère spécial, tel que « . » ou « \ » soit un caractère normal, vous pouvez l'échapper en ajoutant une barre oblique inverse (« \ ») devant lui. Donc, si vous voulez correspondre exactement au caractère « . », au lieu de n'importe quel caractère unique, vous devez écrire « \. ».

Vous pouvez organiser une expression rationnelle en sous-expressions rationnelles à l'aide de parenthèses : "(" et ")". L'expression rationnelle « abc » peut être organisée comme « (a)(bc) ». Les sous-expressions rationnelles sont utiles lors de l'application des opérateurs d'expression rationnelle.

Remarque sur les caractères Espace

Pour des raisons de rétro-compatibilité, les espaces dans les expressions rationnelles ne sont pas toujours gérés de la même manière. Dans certains cas, les caractères d'espacement sont réduits en un seul espace. Par exemple, si le texte d'une balise contient plusieurs espaces à la suite, ils seront transformés en un seul caractère d'espacement.

Cette réduction des espaces se produit dans :

  • Les localisateurs dans les Robots à Moteur Basique qui utilisent une expression rationnelle de balise.

  • Le critère d'attente HTML dans les Robots à Moteur Basique qui attend qu'une balise apparaisse à l'aide d'une expression rationnelle.

La réduction des espaces ne se produit pas dans d'autres cas d'utilisation.

Opérateurs de répétition

Ces symboles d'opérateur répéteront le caractère, le symbole ou la sous-expression rationnelle précédente.

Symbole spécial Description

{m}

Correspond exactement à m répétitions de la sous-expression rationnelle précédente.

{m,n}

Correspond entre m et n répétitions (incluses) de la sous-expression rationnelle précédente. Il correspondra à autant de sous-expressions rationnelles que possible.

{m,n}?

Correspond entre m et n répétitions (incluses) de la sous-expression rationnelle précédente. Il correspondra au plus petit nombre de sous-expressions rationnelles possible

{m,}

Correspond à m répétitions ou plus de la sous-expression rationnelle précédente. Il correspondra à autant de sous-expressions rationnelles que possible.

{m,}?

Correspond à m répétitions ou plus de la sous-expression rationnelle précédente. Il correspondra au plus petit nombre de sous-expressions rationnelles possible.

?

La sous-expression rationnelle précédente, ou du texte vide. Abréviation pour {0,1}

*

Correspond à n'importe quel nombre de répétitions de la sous-expression rationnelle précédente, ou à du texte vide. Abréviation pour {0,}. Il correspondra à autant de sous-expressions rationnelles que possible.

*?

Correspond à n'importe quel nombre de répétitions de la sous-expression rationnelle précédente, ou à du texte vide. Abréviation pour {0,}?. Il correspondra au plus petit nombre de sous-expressions rationnelles possible.

+

Correspond à une ou plusieurs répétitions de la sous-expression rationnelle précédente. Abréviation pour {1,}. Il correspondra à autant de sous-expressions rationnelles que possible.

+?

Correspond à une ou plusieurs répétitions de la sous-expression rationnelle précédente. Abréviation pour {1,}?. Il correspondra au plus petit nombre de sous-expressions rationnelles possible.

Ces opérateurs répéteront le caractère, le symbole ou la sous-expression rationnelle précédente.

Plus d'informations sur le regroupement

Nous avons vu que « ( » et « ) » peuvent être utilisés pour regrouper des sous-expressions rationnelles dans une nouvelle sous-expression rationnelle. Mais cela sert en fait un autre objectif : vous pouvez utiliser ces groupes dans des expressions. Pour créer un regroupement qui ne peut pas être utilisé dans les expressions, vous pouvez utiliser « (?: ».

Vous pouvez faire référence à d'autres groupes dans votre expression rationnelle en utilisant \n, où n est le numéro du groupe.