Une expression régulière (regex) est un mini-langage pour décrire des motifs de texte. Le module standard re permet de chercher, valider, extraire et remplacer.
Import
import rere.search(motif, texte) → trouve la PREMIÈRE correspondance (ou None)
re.findall(motif, texte) → liste de TOUTES les correspondances
re.match(motif, texte) → match seulement au début du texte
re.sub(motif, remplacement, texte) → remplacement. n'importe quel caractère (sauf newline)
\d un chiffre (0-9)
\w lettre, chiffre ou _
\s espace (espace, tab, newline)
\D \W \S l'inverse (majuscules)
[abc] un caractère parmi a, b, c
[a-z] un caractère entre a et z
[^abc] tout SAUF a, b, cQuantificateurs
* 0 ou plus
+ 1 ou plus
? 0 ou 1
{n} exactement n
{n,m} entre n et mAncres
^ début de la chaîne
$ fin de la chaîneimport re
texte = "Contact alice@beauvoir.co ou bob@data.fr pour plus d'info"
motif = r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'
emails = re.findall(motif, texte)
print(emails)
# → ['alice@beauvoir.co', 'bob@data.fr']Décomposition du motif :
[a-zA-Z0-9._%+-]+ 1 ou plus caractères autorisés avant le @
@ le @ littéral
[a-zA-Z0-9.-]+ le nom de domaine
\. un point littéral (échappé)
[a-zA-Z]{2,} extension de 2 lettres minimumPréfixe ta regex par r'...' (raw string) sinon Python interprète les \ et tu galères avec les double échappements.
Outils pour tester tes regex : regex101.com, pythex.org. Indispensable pour débugger les motifs complexes.
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →