二选一,还是三选一
搜索单个词很容易,对吧?但如果要精确匹配两个或三个词,用普通的"Control + F"就做不到了。不过借助正则表达式,您现在可以定义一个实现该目标的搜索模式。您可以使用 str_view() 查看您的正则表达式匹配到了什么。
当您使用管道运算符 | 连接多个词时,会同时匹配管道前后的内容。而且不限于两个。您也可以有三个选项,用两个管道连接,例如 Hello Anna|Berta|Colin。
此外,您还可以使用括号将某些词分组。例如查找 Hello (Anna|Berta|Colin) 会与上面的模式产生不同的结果。请分别尝试这两种写法,并比较结果。
本练习是课程的一部分
R 中级正则表达式
练习说明
- 创建一个模式:搜索以
"Finding "开头,且后接"Nemo"、"Harmony"或"Dory"的电影名。 - 现在用括号
()将这三个可能性括起来,创建同样的模式,以便比较结果。 - 在两种模式中,选择能匹配完整电影名
"Finding Nemo"、"Finding Harmony"和"Finding Dory"的那个,并将其传递给第三个str_match()调用。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Append the three options: Match Nemo, Harmony or Dory
str_view(lines, pattern = "Finding ___")
# Wrap the three options in parentheses and compare the results
str_view(lines, pattern = "Finding ___")
# Use the pattern from above that matched the whole movie names
str_match(lines, pattern = "Finding ___")