20 patterns regex que tout developpeur devrait bookmarker
Un cheat sheet pratique des expressions regulieres les plus utiles — email, URL, telephone, IP, dates et plus. Copiez, collez, utilisez.
Les expressions regulieres sont un de ces outils qui semblent magiques quand ils marchent et absolument exasperants quand ils ne marchent pas. Je collectionne des patterns utiles depuis des annees, et ces 20-la sont ceux que j'utilise encore et encore.
Bookmarkez cette page. Vous y reviendrez.
Les bases que vous allez oublier
Avant les patterns, un rappel rapide des pieges courants :
.matche n'importe quel caractere (sauf le retour a la ligne)*signifie zero ou plus,+signifie un ou plus,?signifie zero ou un\dest un chiffre,\west un caractere de mot,\sest un espace^est le debut de chaine,$est la fin de chaine()groupe,[]definit une classe de caracteres,{}fixe la quantite
Les 20 patterns
1. Adresse email
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Couvre la plupart des emails reels. Pas conforme RFC 5322 (presque rien ne l'est), mais gere 99% des adresses valides.
2. URL (HTTP/HTTPS)
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
Matche les URLs HTTP et HTTPS avec chemins et query strings.
3. Numero de telephone (international)
^\+?[1-9]\d{1,14}$
Format E.164 — fonctionne a l'international. Pour la France : ^(?:(?:\+|00)33|0)\s*[1-9](?:[\s.-]*\d{2}){4}$
4. Adresse IPv4
^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$
Valide chaque octet entre 0-255. Les patterns plus simples acceptent des adresses invalides comme 999.999.999.999.
5. Adresse IPv6
^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$
IPv6 forme complete basique. Ne couvre pas la notation abregee (::), mais gere le format le plus courant.
6. Date (AAAA-MM-JJ)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
Format de date ISO 8601. Valide les plages de mois et jours mais ne verifie pas les dates impossibles comme le 31 fevrier.
7. Heure (HH:MM, 24 heures)
^([01]\d|2[0-3]):([0-5]\d)$
Format 24 heures, 00:00 a 23:59.
8. Code couleur hexadecimal
^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
Matche les couleurs hex 3 et 6 chiffres : #fff, #1a2b3c.
9. Mot de passe fort
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
Au moins 8 caracteres avec majuscule, minuscule, chiffre et caractere special. Ajustez la longueur minimale et les caracteres autorises selon vos besoins.
10. Nom d'utilisateur
^[a-zA-Z0-9_-]{3,20}$
Alphanumerique avec underscores et tirets, 3-20 caracteres.
11. Balise HTML
<\/?[\w\s]*>|<.+[\W]>
Matche les balises HTML ouvrantes et fermantes. N'utilisez pas les regex pour parser du HTML en production — utilisez un vrai parser. Mais pour des recherches rapides, ca fonctionne.
12. Suppression des espaces
^\s+|\s+$
Matche les espaces en debut et fin de chaine. Utile pour les operations de nettoyage.
13. Mots en double
\b(\w+)\s+\1\b
Attrape les mots repetes comme "le le" ou "est est". Super pour la relecture.
14. Extension de fichier
\.([a-zA-Z0-9]+)$
Extrait l'extension de fichier. Le groupe 1 donne juste l'extension sans le point.
15. Slug (chaine URL-friendly)
^[a-z0-9]+(?:-[a-z0-9]+)*$
Valide les slugs URL : minuscules, chiffres et tirets. Pas de tirets consecutifs, ne commence ni ne finit par un tiret.
16. Numero de carte de credit (basique)
^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13})$
Detecte les patterns Visa, MasterCard et American Express. Validation de format uniquement — utilisez toujours un processeur de paiement pour la vraie validation.
17. UUID v4
^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
Valide le format UUID version 4 avec les bits de version et de variante corrects.
18. Valeur de chaine JSON
"(?:[^"\\]|\\.)*"
Matche une valeur de chaine JSON correctement echappee, gerant les echappements backslash.
19. Propriete CSS
([a-z-]+)\s*:\s*([^;]+);
Extrait les paires propriete-valeur CSS. Le groupe 1 est le nom de la propriete, le groupe 2 est la valeur.
20. Lien Markdown
\[([^\]]+)\]\(([^)]+)\)
Matche les liens [texte](url). Le groupe 1 est le texte du lien, le groupe 2 est l'URL.
Conseils pour travailler avec les regex
Commencez simple et construisez. N'essayez pas d'ecrire le pattern parfait d'un coup. Commencez avec la version la plus simple qui fonctionne, puis ajoutez la gestion des cas limites.
Utilisez un testeur. Testez toujours vos patterns avec des donnees reelles avant de les deployer. Les cas limites vous surprendront.
Ajoutez des commentaires. La plupart des moteurs regex supportent un mode verbeux ou vous pouvez ajouter des commentaires et des espaces pour la lisibilite.
Sachez quand ne pas utiliser les regex. Parser du HTML, valider des dates complexes ou gerer des structures profondement imbriquees — utilisez des parsers dedies pour ca.
Vous pouvez aussi utiliser le diff de texte pour verifier que vos remplacements regex ont produit la bonne sortie, ou le compteur de caracteres pour verifier la longueur des chaines matchees.
La regex est une competence qui s'ameliore avec la pratique. Vous n'avez pas besoin de memoriser chaque regle de syntaxe — vous avez besoin d'en savoir assez pour lire les patterns et les modifier selon vos besoins. Gardez ce cheat sheet sous la main, et vous passerez moins de temps sur Stack Overflow et plus de temps a construire des choses.