ConsigneExtrais tous les emails du texte `"Contact alice@beauvoir.co ou bob@data.fr pour plus d'info"` avec un regex
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 correspondancesre.match(motif, texte) → match seulement au début du textere.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îne, ou juste avant un \n final (pour exiger la toute fin : \Z)import retexte = "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 →