regex cheat-sheet programming javascript python dev-tech

Aide-mémoire Regex : Référence complète avec exemples visuels

Un guide de référence complet sur les expressions régulières comprenant les méta-caractères, les quantificateurs, les ancres, les lookarounds et les diagrammes ferroviaires. Parfait pour les développeurs et les analystes de données.

Aide-mémoire Regex : La référence ultime

Les expressions régulières (Regex) sont incroyablement puissantes mais notoirement difficiles à maîtriser. Que vous validiez une adresse e-mail, extrayiez des données ou parcouriez du code, avoir un Aide-mémoire Regex fiable peut vous épargner des heures de frustration.

Dans ce guide, nous décomposons chaque composant regex, des caractères de base aux lookarounds complexes, le tout accompagné d'explications visuelles et d'exemples pratiques.


1. Méta-caractères de base

Ce sont les blocs de construction de tout motif regex.

Méta-caractère Description Exemple
. Correspond à n'importe quel caractère unique sauf le saut de ligne a.b correspond à acb, a1b
\ Échappe un caractère spécial \. correspond à un . littéral
| Alternance (OU) cat|dog correspond à cat ou dog
[] Ensemble de caractères (n'importe quel caractère à l'intérieur) [aeiou] correspond à n'importe quelle voyelle
[^] Ensemble de caractères nient [^0-9] correspond à n'importe quel caractère non numérique

2. Quantificateurs : Contrôler la fréquence

Les quantificateurs indiquent au moteur regex combien de fois un caractère ou un groupe doit apparaître.

Quantificateur Description Exemple
* 0 fois ou plus a* correspond à ``, a, aa
+ 1 fois ou plus a+ correspond à a, aa
? 0 ou 1 fois (optionnel) a? correspond à `` ou a
{n} Exactement n fois a{3} correspond à aaa
{n,} n fois ou plus a{2,} correspond à aa, aaa
{n,m} Entre n et m fois a{2,4} correspond à aa, aaa, aaaa

3. Classes de caractères : Raccourcis courants

Classe Description Équivalent
\d N'importe quel chiffre [0-9]
\D N'importe quel caractère non numérique [^0-9]
\w N'importe quel caractère de mot (alphanumérique + _) [a-zA-Z0-9_]
\W N'importe quel caractère qui n'est pas un mot [^a-zA-Z0-9_]
\s N'importe quel espace blanc (espace, tabulation, saut de ligne) [ \t\n\r\f\v]
\S N'importe quel caractère qui n'est pas un espace blanc [^ \t\n\r\f\v]

4. Ancres : Définir les limites

Ancre Description Exemple
^ Début de la chaîne / ligne ^Bonjour
$ Fin de la chaîne / ligne Monde$
\b Limite de mot \bcat\b (correspond à "cat" mais pas à "category")
\B Pas une limite de mot \Bcat (correspond à "category")

5. Groupes et Capture

Syntaxe Description Exemple
(...) Groupe de capture (abc)+ correspond à abcabc
(?:...) Groupe de non-capture (?:abc)+
(?<name>...) Groupe de capture nommé (?<id>\d+)
\1 Référence arrière au groupe #1 (\w)\1 correspond à aa, bb

6. Lookaround : Filtrage avancé

Les lookarounds vous permettent de faire correspondre un motif seulement s'il est (ou n'est pas) suivi ou précédé d'un autre motif, sans inclure ce motif dans la correspondance.

Syntaxe Nom Description
(?=...) Lookahead positif Suivi de ...
(?!...) Lookahead négatif NON suivi de ...
(?<=...) Lookbehind positif Précédé de ...
(?<!...) Lookbehind négatif NON précédé de ...

7. Visualiser les Regex avec des diagrammes ferroviaires

Les motifs regex complexes peuvent rapidement devenir illisibles. Les Diagrammes Ferroviaires sont un moyen visuel de représenter le flux d'une expression régulière.

Imaginez une voie ferrée :

  1. La voie se divise lors d'une alternance (|).
  2. La voie boucle pour un quantificateur (*, +).
  3. La voie passe par une boîte de groupe.

L'utilisation d'un visualiseur vous aide à déboguer les erreurs de logique, en particulier lors de la manipulation de groupes imbriqués ou de quantificateurs complexes.


8. Exemples pratiques

Validation d'e-mail (Simplifiée)

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Mot de passe fort (Exemple Lookahead)

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$ (Nécessite au moins une minuscule, une majuscule, un chiffre et 8+ caractères)

Numéro de téléphone (Format US)

^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$


9. Foire aux questions (FAQ)

Q : Quelle est la différence entre correspondance "Greedy" (gourmande) et "Lazy" (paresseuse) ?

A : Par défaut, les quantificateurs sont greedy—ils correspondent à autant de caractères que possible. Ajouter un ? après un quantificateur (ex: .*?) le rend lazy (ou non-greedy), ce qui signifie qu'il correspond au moins de caractères possible.

Q : Comment effectuer une recherche insensible à la casse ?

A : La plupart des moteurs regex utilisent un drapeau (généralement i) pour activer l'insensibilité à la casse. Par exemple, /bonjour/i correspond à Bonjour, BONJOUR et bonjour.

Q : Qu'est-ce que le backtracking et pourquoi est-ce important ?

A : Le backtracking se produit lorsque le moteur regex essaie un chemin, échoue et "revient sur ses pas" pour en essayer un autre. Les motifs complexes avec de nombreux quantificateurs imbriqués peuvent mener au Backtracking Catastrophique, qui peut geler votre application ou votre serveur.


Testez vos motifs sur Tool3M

  • Testeur Regex : Tests regex en temps réel avec coloration et débogage visuel.
  • Formateur JSON : Utilisez regex pour rechercher et filtrer vos grands ensembles de données JSON.
  • Convertisseur de casse : Nettoyez votre texte avant d'appliquer des filtres regex.