Leçon 8 / 9 — Chapitre 6: Chaînes avancées et formatage
re.sub() : remplacer avec une expression régulière
re.sub(motif, remplacement, texte) remplace toutes les portions de texte correspondant au motif par remplacement, et renvoie une nouvelle chaîne — l'équivalent regex de .replace(), mais capable de reconnaître un motif entier plutôt qu'un texte fixe.
import re
texte = "Contact : 07-12-34-56-78"
resultat = re.sub(r"[0-9]", "X", texte)
print(resultat)
Ce code affiche Contact : XX-XX-XX-XX-XX : chaque chiffre individuel ([0-9], sans le + cette fois) est remplacé par "X", un par un.
Contrairement à .replace(), qui ne remplace qu'un texte exact et fixe, re.sub() reconnaît n'importe quelle séquence correspondant au motif, quelle que soit sa valeur précise — utile par exemple pour masquer tous les chiffres d'un numéro sans connaître ce numéro à l'avance.
texte_original = "riz 5, huile 8"
sans_chiffres = re.sub(r"[0-9]+", "N", texte_original)
print(sans_chiffres)
Ce code affiche riz N, huile N : chaque groupe de chiffres ([0-9]+, avec le + cette fois) est remplacé par "N" en un seul bloc, plutôt que chiffre par chiffre.
À vous de jouer : utilisez re.sub(r"[0-9]+", "N", texte) pour remplacer tous les nombres d'une phrase par la lettre "N".
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 85 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès