Show Menu
SUJETS×

Regular Expressions

Actualisation concernant la syntaxe et les règles de construction des expressions régulières.
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 non vide de caractères entre crochets [ ] (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, dans 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.
      Cette signification particulière n’ ^ est définie que 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, # équivaut à #.
      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. Cette signification particulière - est perdue si elle se produit en premier (après un premier ^ , le cas échéant) ou en dernier 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 caractère ^ , le cas échéant. Par exemple, []a-f] correspond à un ] (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 d’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 d’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'un ? (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 d’un caractère suivie d’un signe + (plus) est une expression régulière qui correspond à une ou plusieurs occurrences de l’expression régulière d’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 d’un caractère suivie d’une expression {m} , {m,} ou {m,n} est une régulière qui correspond à une plage d’occurrences de l’expression régulière d’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 | (canalisation 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 seconde 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 # ou par l’expression régulière à un caractère de la classe de caractères [ #].
Les classes de caractères prédéfinies et leur signification sont les suivantes :
Classe Caractère
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 Caractère
Signification
[[:<:]]
début d’un mot
[[:>:]]
fin d’un mot