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.
· 4 min lire

Explorez l'IA

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(____)

         

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.

          # 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)
          

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

Découvrez le Python String Tutorial de DataCamp.

Sujets

Contenus associés

Tutoriel

Tutoriel Python sur les structures de données