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?)