Rendre des motifs avancés plus lisibles
Très bien, vous savez déjà créer des motifs qui correspondent à une liste de noms en les fusionnant avec le pipe | comme séparateur. Mais le « collapsing » est aussi utile pour concaténer de petites parties d’un motif, faciles à digérer. En utilisant glue_collapse() et un vecteur (avec ou sans noms, les deux sont possibles) comme seul argument, vous pouvez créer des motifs très longs et compliqués à partir de petits morceaux beaucoup plus simples à interpréter.
La variable users a été exportée depuis notre base de données et est à nouveau disponible dans l’espace global. Mais dans cet exercice, nous ne nous intéressons pas seulement aux noms d’utilisateur : nous voulons aussi le chiffre et l’adresse e‑mail qui suivent.
Cet exercice fait partie du cours
Expressions régulières intermédiaires en R
Instructions
- Réexaminez le contenu de
users. - À l’endroit où l’on attend le nom d’utilisateur, écrivez un motif qui fasse correspondre une ou plusieurs lettres alphabétiques. Utilisez des crochets
[]pour créer ce motif personnalisé. - Là où l’on attend le nombre de connexions pour cet utilisateur, écrivez un motif qui fasse correspondre un ou plusieurs chiffres. Utilisez pour cela la classe de caractères « digit ».
- Comme l’e‑mail vient en dernier sur chaque ligne, écrivez un motif simple qui fasse correspondre un ou plusieurs caractères quelconques.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Familiarize yourself with users by printing its contents
print(___)
advanced_pattern <- glue_collapse(c(
# Match one or more alphabetical letters
"username" = "^___",
": ",
# Match one or more digit
"logins" = "___",
", ",
# Match one or more arbitrary characters
"email" = "___$"
))
str_view(users, advanced_pattern)