...
Contact Contact

Aide-mémoire regex : chaque jeton expliqué, avec des exemples à copier

Regex Cheat Sheet: The Syntax That Matters, Ready Patterns, and the Bugs Everyone Hits Regex Cheat Sheet: The Syntax That Matters, Ready Patterns, and the Bugs Everyone Hits

Les expressions régulières sont l’une des rares compétences qui fonctionnent dans tous les langages et tous les éditeurs — et l’une des rares qu’il faut reconsulter tous les six mois. Cet aide-mémoire explique chaque jeton en une phrase, donne un exemple et se termine par les motifs les plus utilisés au quotidien. Tous les exemples se collent directement dans le testeur de regex.

Briques de base d’une regex

Jeton Signification Exemple
. N’importe quel caractère sauf saut de ligne a.c correspond à « abc », « a1c »
d w s Chiffre, caractère de mot (a–z, 0–9, _), espace ddd correspond à « 123 »
D W S Le contraire de chacun D+ correspond à « abc »
b Limite de mot bestb correspond à « est », pas à « reste »
^ $ Début / fin (de ligne avec le flag m) ^Bonjour
Échapper un caractère spécial . correspond à un vrai point

Classes de caractères

  • [abc] l’un des caractères a, b, c
  • [^abc] tout caractère sauf a, b, c
  • [a-z], [0-9], [A-Za-zÀ-ÿ] plages ; les lettres accentuées doivent être incluses explicitement
  • Entre crochets, la plupart des spéciaux perdent leur sens : [.] est un vrai point

Quantificateurs

Jeton Signification
* 0 ou plus
+ 1 ou plus
? 0 ou 1
{3} {2,5} {2,} exactement 3, de 2 à 5, au moins 2
*? +? ?? « paresseux » : le moins possible

Le classique : <.+> sur « <b>gras</b> » capture toute la chaîne parce que + est gourmand. <.+?> ne capture que « <b> ».

Groupes

  • (abc) groupe capturant : disponible ensuite comme $1, $2…
  • (?:abc) groupe non capturant : sert juste à grouper, plus rapide
  • (?<annee>d{4}) groupe nommé : dans le remplacement, $<annee>
  • a|b alternative : « a ou b » ; parenthésez pour limiter la portée : gr(i|a)s
  • 1 référence arrière : (w)1 capture les lettres doublées comme « ll »

Lookarounds

Jeton Signification Exemple
(?=x) suivi de x (hors capture) d+(?= €) capture « 49 » dans « 49 € »
(?!x) non suivi de x bfoo(?!bar)
(?<=x) précédé de x (?<=€)d+
(?<!x) non précédé de x (?<!d)d{4}(?!d) : exactement quatre chiffres

Flags

  • g toutes les correspondances au lieu de la première
  • i ignorer la casse
  • m ^ et $ agissent par ligne
  • s . capture aussi les sauts de ligne
  • u Unicode : nécessaire pour les emojis et p{L}
  • y « sticky » : uniquement à la position courante

Les dix motifs dont on a toujours besoin

  1. E-mail (pragmatique) : ^[w.+-]+@[w-]+.[w.-]+$
  2. URL : https?://[^s/$.?#].[^s]*
  3. Date JJ/MM/AAAA : ^(0[1-9]|[12]d|3[01])/(0[1-9]|1[0-2])/d{4}$
  4. Date ISO : ^d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]d|3[01])$
  5. IPv4 : ^((25[0-5]|2[0-4]d|1?d?d).){3}(25[0-5]|2[0-4]d|1?d?d)$
  6. Code postal français : ^(0[1-9]|[1-8]d|9[0-5])d{3}$
  7. Téléphone (souple) : ^+?[ds()/.-]{7,}$
  8. Couleur hexadécimale : ^#([0-9a-fA-F]{3}){1,2}$
  9. Supprimer les espaces en bordure : ^s+|s+$ → remplacer par rien
  10. Espaces doubles : {2,} → remplacer par un espace

Trois erreurs que tout le monde fait

  1. Quantificateurs gourmands avec du HTML ou des guillemets : utilisez +?.
  2. Point non échappé : example.com correspond aussi à « exampleXcom ».
  3. Flag g oublié, puis surprise que seule la première occurrence soit remplacée.

Remplacer avec des groupes

Motif (w+)@(w+).fr, remplacement $2:$1 transforme « marie@societe.fr » en « societe:marie ». Groupes nommés : $<nom>. La correspondance complète est $&.

Advertisement

Essayez maintenant : Testeur de regex

Gratuit, fonctionne dans votre navigateur, rien n’est envoyé, sans inscription.

Ouvrir l’outil →
Add a comment Add a comment

Leave a Reply

Your email address will not be published. Required fields are marked *

Submit Comment

Advertisement
Seraphinite AcceleratorOptimized by Seraphinite Accelerator
Turns on site high speed to be attractive for people and search engines.