Accéder au contenu principal

Nettoyer des chaînes avec des expressions régulières

Ce tutoriel reprend des extraits du cours Cleaning Data in Python de DataCamp et vous montre comment nettoyer des chaînes avec des expressions régulières.
Actualisé 19 sept. 2026  · 4 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity

Si vous souhaitez suivre notre cours gratuit Intro to R, voici le lien.

Extraire des valeurs numériques de chaînes

Extraire des nombres de chaînes est une tâche courante, en particulier avec des données non structurées ou des fichiers journaux.

Supposons que vous ayez la chaîne suivante : 'the recipe calls for 6 strawberries and 2 bananas'.

Il peut être utile d’extraire le 6 et le 2 de cette chaîne pour les réutiliser ensuite, par exemple pour comparer les proportions fraises/bananes.

Lorsque vous utilisez une expression régulière pour extraire plusieurs nombres (ou plus précisément, plusieurs correspondances de motif), vous pouvez employer la fonction re.findall(). Dan n’en a pas parlé dans la vidéo, mais son utilisation est simple : vous transmettez un motif et une chaîne à re.findall(), qui renvoie une liste des correspondances.

Consignes

  • Importez re.
  • Écrivez un motif qui trouve tous les nombres dans la chaîne suivante : 'the recipe calls for 10 strawberries and 1 banana'. Pour cela :
    • Utilisez la fonction re.findall() avec deux arguments : le motif, puis la chaîne.
    • \d est le motif pour trouver des chiffres. Ajoutez un + pour indiquer que l’élément précédent doit correspondre une ou plusieurs fois. Cela garantit que 10 est pris comme un seul nombre et non comme 1 et 0.
  • Affichez les correspondances pour vérifier que votre expression régulière a bien trouvé les valeurs 10 et 1.
# Import the regular expression module ____ # Find the numeric values: matches matches = re.findall('____', '____') # Print the matches print(____) # Import the regular expression module import re # Find the numeric values: matches matches = re.findall('\d+', 'the recipe calls for 10 strawberries and 1 banana') # Print the matches print(matches) Ex().test_import('re') Ex().test_correct(test_object('matches'), test_function('re.findall')) Ex().test_function('print') success_msg('Excellent work - your regular expression successfully extracted the numeric values 10 and 1 from the string!')
  • Utilisez la commande import x pour importer le module x.
  • Le premier argument de re.findall() doit être \d+, et le second la chaîne : 'the recipe calls for 10 strawberries and 1 banana'.
  • Utilisez la fonction print() fournie pour afficher matches.

Si tout est clair, passez à l’exercice suivant ! Sinon, voici une vidéo de synthèse.

Vidéo de synthèse : utiliser les expressions régulières pour nettoyer des chaînes en Python

Appariement de motifs

Dans cet exercice, vous allez continuer à pratiquer les expressions régulières. Pour chaque chaîne fournie, votre objectif est d’écrire le motif approprié pour la faire correspondre.

Consignes

  • Écrivez des motifs pour faire correspondre :
    • Un numéro de téléphone au format xxx-xxx-xxxx. Vous l’avez déjà fait dans un exercice précédent.
    • Une chaîne au format : un signe dollar, un nombre arbitraire de chiffres, un point décimal, puis 2 chiffres.
      • Utilisez \$ pour le signe dollar, \d* pour un nombre arbitraire de chiffres, \. pour le point décimal, et \d{x} pour faire correspondre x chiffres.
  • Une majuscule suivie d’un nombre arbitraire de caractères alphanumériques.
    • Utilisez [A-Z] pour n’importe quelle majuscule, suivi de \w* pour un nombre arbitraire de caractères alphanumériques.
import re # Write the first pattern pattern1 = bool(re.match(pattern='____', string='123-456-7890')) print(pattern1) # Write the second pattern pattern2 = bool(re.match(pattern='____', string='$123.45')) print(pattern2) # Write the third pattern pattern3 = bool(re.match(pattern='____', string='Australia')) print(pattern3) # Write the first pattern pattern1 = bool(re.match(pattern='\d{3}-\d{3}-\d{4}', string='123-456-7890')) print(pattern1) # Write the second pattern pattern2 = bool(re.match(pattern='\$\d*\.\d{2}', string='$123.45')) print(pattern2) # Write the third pattern pattern3 = bool(re.match(pattern='[A-Z]\w*', string='Australia')) print(pattern3) Ex().test_correct(test_object('pattern1'), test_function('re.match', index=1)) Ex().test_function('print', index=1) Ex().test_correct(test_object('pattern2'), test_function('re.match', index=2)) Ex().test_function('print', index=2) Ex().test_correct(test_object('pattern3'), test_function('re.match', index=3)) Ex().test_function('print', index=3) success_msg("Great work! You're mastering the fundamentals of writing regular expressions!")
  • Le premier motif doit comporter trois éléments : xxx, xxx et xxxx. Les deux premiers se correspondent avec \d{3}, le dernier avec \d{4}. Chaque élément est séparé par un -.

Si vous souhaitez aller plus loin avec ce cours, voici le lien.

Découvrez le Python String Tutorial de DataCamp.

Sujets
Python
Science des données

En savoir plus sur Python

Cours

Expressions rationnelles en Python

4 h
49.7K
Apprenez la manipulation de chaînes et maîtrisez l’utilisation des expressions régulières.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow