CommencerCommencer gratuitement

S’entraîner avec les expressions régulières : re.split() et re.findall()

Vous allez maintenant écrire des expressions régulières pour faire correspondre des chiffres, des chaînes et des caractères non alphanumériques. Commencez par afficher my_string dans l’IPython Shell afin de déterminer la meilleure façon de traiter les différentes étapes.

Remarque : il est important de préfixer vos motifs regex avec r pour vous assurer qu’ils sont interprétés comme vous le souhaitez. Sinon, vous pourriez rencontrer des problèmes liés aux séquences d’échappement dans les chaînes. Par exemple, "\n" en Python indique un retour à la ligne, mais si vous utilisez le préfixe r, il sera interprété comme la chaîne brute "\n" — c’est-à-dire le caractère "\" suivi du caractère "n" — et non comme un saut de ligne.

Le module des expressions régulières re a déjà été importé pour vous.

Souvenez-vous de la vidéo : avec la bibliothèque regex, vous passez toujours le motif en premier, puis la chaîne en second.

Cet exercice fait partie du cours

Introduction au Natural Language Processing (NLP) en Python

Afficher le cours

Instructions

  • Scindez my_string à chaque fin de phrase. Pour cela :
    • Écrivez un motif appelé sentence_endings pour faire correspondre les fins de phrase (.?!).
    • Utilisez re.split() pour découper my_string selon ce motif et affichez le résultat.
  • Trouvez et affichez tous les mots commençant par une majuscule dans my_string en écrivant un motif appelé capitalized_words et en utilisant re.findall().
    • Vous vous souvenez du motif [a-z] montré dans la vidéo pour correspondre aux minuscules ? Adaptez-le pour faire correspondre les majuscules.
  • Écrivez un motif appelé spaces pour faire correspondre un ou plusieurs espaces ("\s+"), puis utilisez re.split() pour découper my_string selon ce motif, en conservant toute la ponctuation. Affichez le résultat.
  • Trouvez tous les chiffres dans my_string en écrivant un motif appelé digits ("\d+") et en utilisant re.findall(). Affichez le résultat.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Write a pattern to match sentence endings: sentence_endings
sentence_endings = r"[___]"

# Split my_string on sentence endings and print the result
print(re.____(____, ____))

# Find all capitalized words in my_string and print the result
capitalized_words = r"[___]\w+"
print(re.____(____, ____))

# Split my_string on spaces and print the result
spaces = r"___"
print(re.____(____, ____))

# Find all digits in my_string and print the result
digits = r"___"
print(re.____(____, ____))
Modifier et exécuter le code