繰り返しをマッチさせる
では、この演習ではパターンがさらに強力になります。繰り返しを使って、ちょうど必要な桁数や文字数にマッチさせる方法を学びます。
中かっこ {} に数値を入れると、何回の出現を探すかを指定できます。1つの数、たとえば {2} なら、その回数にぴったり一致します。数値とカンマを使うと、その数が最小回数になります: {2,}(2回以上)。2つ目の数は最大回数なので、{2,4} は2回以上4回以下の繰り返しに一致します。
プラス記号 + とアスタリスク * は、繰り返しをさらに手早く指定する方法です。前者は1回以上、後者は0回以上(0回、1回、またはそれ以上)に一致します。これら2つは、未知の数の任意の文字にマッチさせるために、ドット . と組み合わせてよく使われます。
この演習はコースの一部です
Rで学ぶ中級正規表現
演習の手順
- 2桁以上の数字を含むタイトルをすべて見つけてください。
- 文字列の先頭で、1文字以上の単語文字を検索して各タイトルの最初の単語にマッチさせてください。
- 単語
"Knight"と、その前に続くすべてにマッチさせてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# This lists all movies with two or more digits in a row
movie_titles[str_detect(
movie_titles,
pattern = "\\d{2,}"
)]
# List just the first words of every movie title
str_match(movie_titles, pattern = "___")
# Match everything that comes before "Knight"
str_match(movie_titles, pattern = "___Knight")