Expressions régulières

Actualisation concernant la syntaxe et les règles de construction des expressions régulières.

Voir aussi Configuration d’un index incrémentiel d’un site Web intermédiaire.

Syntaxe des expressions régulières

Texte

N’importe quel caractère

[caractères]

Classe de caractères : Un des caractères

[^chars]

Classe de caractères : Aucun caractère

text1|text2

Autre solution : text1 ou text2

Quantificateurs

?

0 ou 1 du texte précédent

*

0 ou N du texte précédent (N > 1)

+

1 ou N du texte précédent (N > 1)

Groupement

(text)

Regroupement du texte, soit pour définir les bordures d'une alternative, soit pour faire des références en arrière où le troisième groupe est utilisé sur le RHS d'une RewriteRule avec $N)

Ancrages

^

Début de l’ancre de ligne.

$

Ancrage de fin de ligne.

Echappement

\char

Echapper à la barre particulière. Par exemple, pour spécifier les caractères ".[] ()" etc.

Règles relatives aux expressions régulières

  • Un caractère ordinaire, et non l’un des caractères spéciaux décrits ci-dessous, est une expression régulière à un caractère qui se correspond.

  • Une barre oblique inverse () suivie d’un caractère spécial est une expression régulière à un caractère qui correspond au caractère spécial lui-même. Les caractères spéciaux sont les suivants :

    • . (point), * (astérisque), ? (point d’interrogation), + (signe plus), [ (crochet gauche), | (barre verticale) et \ (barre oblique inverse) sont toujours des caractères spéciaux, sauf lorsqu’ils apparaissent entre crochets.

    • ^ (circonflexe ou circonflexe) est spécial au début d'une expression normale, ou lorsqu'il suit immédiatement la gauche d'une paire de crochets.

    • $ (signe dollar) est spécial à la fin d'une expression ordinaire.

    • . (point) est une expression régulière d’un caractère qui correspond à n’importe quel caractère, y compris les caractères de jeu de codes supplémentaires, à l’exception de la nouvelle ligne.

    • Une chaîne de caractères non vides entre [ ] (crochets gauche et droit) est une expression régulière à un caractère qui correspond à un caractère, y compris les caractères de jeu de code supplémentaires, de cette chaîne.

      Si, toutefois, le premier caractère de la chaîne est un ^ (circumflex), l’expression régulière à un caractère correspond à n’importe quel caractère, y compris les caractères de jeu de code supplémentaires, à l’exception des caractères de nouvelle ligne et des caractères restants de la chaîne.

      ^ a cette signification spéciale uniquement si elle se produit en premier dans la chaîne. Vous pouvez utiliser - (signe moins) pour indiquer une plage de caractères consécutifs, y compris des caractères de jeu de code supplémentaires. Par exemple, [0-9] est équivalent à [0123456789].

      Les caractères spécifiant la plage doivent provenir du même jeu de codes. Lorsque les caractères proviennent de différents jeux de codes, l’un des caractères qui spécifient la plage est mis en correspondance. - perd cette signification spéciale si elle survient en premier (après un ^ initial, le cas échéant) ou s'il dure dans la chaîne. Le ] (crochet droit) ne termine pas une telle chaîne lorsqu'il s'agit du premier caractère qu'elle contient, après un premier ^, le cas échéant. Par exemple, []a-f] correspond à ] (crochet droit) ou à l’une des lettres ASCII a à f inclusif. Les quatre caractères répertoriés en tant que caractères spéciaux ci-dessus se trouvent dans une telle chaîne de caractères.

Règles de construction d’expressions régulières à partir d’expressions régulières à un caractère

Vous pouvez utiliser les règles suivantes pour construire des expressions régulières à partir d’expressions régulières à un caractère :

  • Une expression régulière d’un caractère est une expression régulière qui correspond à l’expression régulière d’un caractère, quelle que soit la nature de celle-ci.
  • Une expression régulière à un caractère suivie d'un * (astérisque) est une expression régulière qui correspond à zéro ou plusieurs occurrences de l'expression régulière à un caractère, qui peut être un caractère supplémentaire de jeu de codes. Si vous avez le choix, la chaîne la plus longue à gauche qui permet une correspondance est choisie.
  • Une expression régulière à un caractère suivie d'une ? (point d'interrogation) est une expression régulière qui correspond à zéro ou à une occurrence de l'expression régulière à un caractère, qui peut être un caractère de jeu de codes supplémentaire. Si vous avez le choix, la chaîne la plus longue à gauche qui permet une correspondance est choisie.
  • Une expression régulière à un caractère suivie d'une + (signe plus) est une expression régulière qui correspond à une ou plusieurs occurrences de l'expression régulière à un caractère, qui peut être un caractère supplémentaire de jeu de codes. Si vous avez le choix, la chaîne la plus longue à gauche qui permet une correspondance est choisie.
  • Une expression régulière à un caractère suivie de {m}, {m,} ou {m,n} est une expression régulière qui correspond à une série d'occurrences de l'expression régulière à un caractère. Les valeurs de m et n doivent être des entiers non négatifs inférieurs à 256 ; {m} correspond exactement à m occurrences ; {m,} correspond au moins à m occurrences ; {m,n} correspond à tout nombre d’occurrences entre m et n inclus. Chaque fois qu’un choix existe, l’expression régulière correspond au plus grand nombre d’occurrences possible.
  • La concaténation des expressions régulières est une expression régulière qui correspond à la concaténation des chaînes correspondant à chaque composant de l'expression régulière.
  • Une expression régulière encadrée entre les séquences de caractères ( et ) est une expression régulière qui correspond à ce que l’expression régulière non ornée correspond.
  • Une expression régulière suivie d'une | (pipe verticale) suivie d'une expression régulière est une expression régulière qui correspond soit à la première expression régulière (avant la canalisation verticale), soit à la deuxième expression régulière (après la canalisation verticale).

Vous pouvez également contraindre une expression régulière à ne correspondre qu’à un segment initial ou final d’une ligne, ou les deux.

  • Un ^ (circonflexe) au début d'une expression régulière limite cette expression régulière pour qu'elle corresponde à un segment initial d'une ligne.
  • Un signe $ (dollar) à la fin d’une expression régulière entière limite cette expression régulière pour qu’elle corresponde à un segment final d’une ligne.
  • La construction de ^normal expression$ contraint l'expression régulière à correspondre à la ligne entière.

Il existe des noms de classe de caractères prédéfinis que vous pouvez utiliser à la place d'expressions régulières entre crochets complexes. Par exemple, un chiffre peut être représenté par l’expression régulière à un caractère [0-9] ou par l’expression régulière à un caractère de la classe de caractères [[:chiffre:]].

Les classes de caractères prédéfinies et leur signification sont les suivantes :

Classe Character

Signification

[[:alnum:]]

Caractère alphabétique ou chiffre.

[[:alpha:]]

Caractère alphabétique.

[[:vide:]]

Espace ou tabulation.

[[:cntrl:]]

un code de contrôle ; caractère non imprimable.

[[:chiffre:]]

Chiffre.

[[:graph:]]

N’importe quel caractère d’impression sauf l’espace.

[[:lower:]]

Caractère alphabétique en minuscules.

[[:print:]]

Tout caractère d’impression comprenant un espace.

[[:punct:]]

Ponctuation.

[[:espace:]]

Espace blanc, tel qu’un espace, une tabulation ou une fin de ligne.

[[:upper:]]

Caractère alphabétique en majuscules.

[[:xnumer:]]

Chiffre hexadécimal, majuscule ou minuscule.

Deux noms de classe de caractères spéciaux correspondent à l’espace nul au début et à la fin d’un mot. En d’autres termes, elles ne correspondent pas à un caractère réel. Un mot est considéré comme toute séquence de caractères alphabétiques, de chiffres ou de traits de soulignement (_).

Classe Character

Signification

[[:<:]]

début d’un mot

[[:>:]]

fin d’un mot

Sur cette page

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free