高度なパターンを読みやすくする
すでに、区切りとしてパイプ | を使って名前のリストにマッチするパターンを作れるようになりましたね。ただし、コラプスはパターンの小さく消化しやすい部分を連結するのにも役立ちます。glue_collapse() とベクター(名前付きでも名前なしでも可)を唯一の入力として使えば、小さな部品から解釈しやすい、とても長くて複雑なパターンを作成できます。
変数 users はデータベースからエクスポートされ、今回もグローバルスコープで利用できます。ですがこの演習では、ユーザー名だけでなく、その後に続く数字とメールアドレスにも関心があります。
この演習はコースの一部です
Rで学ぶ中級正規表現
演習の手順
- もう一度、
usersの中身を確認してください。 - ユーザー名が来る箇所には、1文字以上のアルファベットにマッチするパターンを書きます。角かっこ
[]を使ってこのカスタムパターンを作ってください。 - そのユーザーのログイン回数が来る箇所には、1桁以上の数字にマッチするパターンを書きます。数字の文字クラスを使ってください。
- 各行の最後にはメールアドレスが来るので、任意の文字が1文字以上にマッチする単純なパターンを書いてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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)