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 :
*
(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.?
(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.+
(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.{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.|
(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.
^
(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.$
(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.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 |