Pratique des expressions régulières : re.split() et re.findall()
Vous allez maintenant pouvoir écrire des expressions régulières pour faire correspondre des chiffres, des chaînes de caractères et des caractères non alphanumériques. Examinez d'abord my_string
en l'imprimant dans le shell IPython, afin de déterminer la meilleure façon de faire correspondre les différentes étapes.
Note : Il est important de préfixer vos motifs de regex par r
pour vous assurer que vos motifs sont interprétés comme vous le souhaitez. Sinon, vous risquez de rencontrer des problèmes liés aux séquences d'échappement dans les chaînes de caractères. Par exemple, "\n"
en Python est utilisé pour indiquer une nouvelle 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 une nouvelle ligne.
Le module d'expressions régulières re
a déjà été importé pour vous.
Rappelez-vous de la vidéo que la syntaxe de la bibliothèque regex est de toujours passer le motif en premier, puis la chaîne en second.
Cet exercice fait partie du cours
Introduction au traitement du langage naturel en Python
Instructions
Partagez
my_string
sur chaque fin de phrase. Pour ce faire :Écrivez un modèle appelé
sentence_endings
pour faire correspondre les fins de phrases (.?!
).Utilisez
re.split()
pour divisermy_string
sur le modèle et imprimez le résultat.
Trouvez et imprimez tous les mots en majuscules dans
my_string
en écrivant un modèle appelécapitalized_words
et en utilisantre.findall()
.- Vous vous souvenez du modèle
[a-z]
présenté dans la vidéo pour faire correspondre les groupes de minuscules ? Modifiez ce modèle de manière appropriée pour qu'il corresponde aux groupes en majuscules.
- Vous vous souvenez du modèle
Écrivez un modèle appelé
spaces
pour faire correspondre un ou plusieurs espaces ("\s+"
), puis utilisezre.split()
pour divisermy_string
sur ce modèle, en conservant toute la ponctuation intacte. Imprimez le résultat.Trouvez tous les chiffres de
my_string
en écrivant un modèle appelédigits
("\d+"
) et en utilisantre.findall()
. Imprimez 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.____(____, ____))