PaliSkill
Python intermédiaire

Leçon 7 / 9 — Chapitre 6: Chaînes avancées et formatage

re.findall() : trouver toutes les correspondances

re.search() (vu à la leçon précédente) ne renvoie que la première correspondance trouvée. re.findall() renvoie, à la place, une liste de toutes les correspondances présentes dans le texte.

import re

texte = "riz 5, huile 8, sucre 3"
nombres = re.findall(r"[0-9]+", texte)
print(nombres)

Ce code affiche ['5', '8', '3'] : re.findall() parcourt tout le texte et collecte chaque portion correspondant au motif [0-9]+, dans une liste de chaînes de caractères.

Comme toujours avec du texte extrait, ces valeurs restent des chaînes : les convertir en entiers pour un calcul demande un appel explicite à int(), éventuellement via une compréhension de liste (vue au troisième chapitre de ce module) :

nombres_entiers = [int(n) for n in nombres]
print(sum(nombres_entiers))

Ce code affiche 16 : la compréhension convertit chaque chaîne en entier, puis sum() additionne la liste résultante.

À vous de jouer : avec re.findall(r"[0-9]+", texte), extrayez tous les nombres d'une phrase contenant plusieurs quantités, puis calculez leur somme.

🔒

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