Guide Regex : les motifs que tu vas vraiment réutiliser
Les expressions régulières concentrent tout un langage de recherche en une seule ligne, ce qui les rend cryptiques jusqu’à ce que les pièces s’emboîtent. Ce guide couvre les 20 pour cent de la syntaxe qui résolvent 80 pour cent des tâches : trouver des e-mails dans du texte collé, valider des saisies, découper des logs et renommer des fichiers en masse.
1. Littéraux, point et classes de caractères
La plupart des caractères se représentent eux-mêmes ; le point représente n’importe quel caractère sauf un saut de ligne. Les crochets définissent un ensemble — [0-9] accepte n’importe quel chiffre, [^0-9] accepte tout sauf un chiffre — tandis que les raccourcis comme \d, \w et \s couvrent les chiffres, les caractères de mot et les espaces. Préfère une classe explicite à un point isolé chaque fois que tu sais ce qui a sa place là.
2. Ancres et quantificateurs
^ ancre au début et $ à la fin, donc ^hi ne trouve que les chaînes qui commencent par hi. Ajoute + pour une fois ou plus, * pour zéro fois ou plus et ? pour facultatif ; un ? final après l’un d’eux bascule en mode paresseux, qui s’arrête à la première occasion au lieu de la dernière. Glouton contre paresseux est la source la plus fréquente de résultats surprenants.
3. Groupes, alternatives et lookarounds
Les parenthèses groupent et capturent — (cat|dog)s? trouve cat, cats, dog ou dogs — tandis que (?:…) groupe sans capturer. Les lookaheads comme \d+(?=px) vérifient ce qui suit sans le consommer, donc tu peux exiger un suffixe tout en le laissant en place pour la correspondance suivante. Les groupes nommés documentent l’intention pour qui lira le motif ensuite.
4. Les flags changent tout
Les lettres après la barre oblique finale règlent le moteur : g trouve toutes les correspondances au lieu de la première, i ignore la casse, m fait agir les ancres par ligne, s laisse le point traverser les sauts de ligne, u active tout Unicode et y fige la correspondance à une position. Un mauvais jeu de flags est une raison fréquente pour laquelle un motif d’apparence correcte ne renvoie rien.
5. Le piège du backtracking
Des quantificateurs imbriqués comme (a+)+ sur une longue chaîne non concordante peuvent envoyer le moteur dans un nombre exponentiel de chemins et figer l’onglet. Garde les répétitions à plat, préfère les réécritures possessives ou les groupes atomiques quand ils sont pris en charge, et teste les motifs suspects contre des entrées hostiles avant de publier — colle-les dans notre testeur regex, qui surligne chaque correspondance et chaque groupe en direct dans ton navigateur.