Skip to content

Aide-mémoire sur les expressions régulières

Caractères de correspondance

[abc] Correspond à n’importe quel caractère parmi a, b ou c
[^abc] Ne correspond pas aux caractères a, b ou c. Le « ^ » n’est effectif que s’il est le premier caractère
[a-g] Correspond à n’importe quel caractère dans la plage a-g
[^a-g] Ne correspond à aucun caractère dans la plage a-g
[H-N] Correspond à n’importe quel caractère dans la plage H-N
[0-9] Correspond à n’importe quel chiffre entre 0-9
[a-gH-N] Correspond à n’importe quel caractère dans les plages a-g ou H-N
Caractères génériques (Wildcards) :
. [^\n\r], correspond à n’importe quel caractère sauf le saut de ligne
\s Espace blanc (saut de ligne, tabulation, espace, etc.)
\S [^\s] (Tout sauf un espace blanc)
\d Chiffre : [0-9]
\D [^\d] (Tout sauf un chiffre)
\w Caractère de mot : [0-9A-Za-z_]
\W [^\w] (Tout sauf un caractère de mot)

Groupes de correspondance

(a b)
(…) Groupe de capture
(?:…) Groupe de non-capture
(?<name>…) ou (?’name’…) Groupe de capture nommé, « name » peut être personnalisé
(?(condition)true_regex false_regex)

group(0) est utilisé pour obtenir l’intégralité de la chaîne correspondante, tandis que group(>0) permet d’extraire des sous-groupes de capture à partir du résultat global.

Remarque : les groupes de capture nommés ne sont supportés qu’à partir de Java 1.7 (en passant la chaîne « name » comme argument à la méthode group). JS et Python ne supportent pas encore nativement les groupes de capture nommés.

Quantificateurs (Plages de fréquence)

{3} L’élément précédent apparaît exactement 3 fois, équivalent à {3,3}
{3,6} L’élément précédent apparaît 3 à 6 fois
{3,} L’élément précédent apparaît au moins 3 fois
{0,6} L’élément précédent apparaît au plus 6 fois
Caractères génériques :
* {0,} (Zéro ou plus)
+ {1,} (Un ou plus)
? {0,1} (Zéro ou un)
\w* Mode gourmand (Greedy)
\w*? Mode non gourmand

Ancres

^ Début de chaîne
$ Fin de chaîne
\b Boundary, frontière de mot
\B Pas une frontière de mot
Assertions de position (Lookaround) :
(?=exp) Assertion positive vers l’avant (suffixe exp)
(?<=exp) Assertion positive vers l’arrière (préfixe exp)
(?!exp) Assertion négative vers l’avant (pas de suffixe exp)
(?<!exp) Assertion négative vers l’arrière (pas de préfixe exp)

\b(\w+)\b est équivalent à (?<=\W?)(\w+)(?=\W?)