←
PDF 229 / 520 Exercises
→
English · PDF 229
Original PDF page 229
中文 · PDF 229

你还可以使用 \b 来匹配单词之间的边界。我在 R 中不常用它,但有时在 RStudio 中搜索时会用到,比如我想找出某个作为其他函数组成部分的函数名。例如,我会搜索 \bsum\b,以避免匹配到 summarize、summary、rowsum 等。

练习题

    1. 你会如何匹配字面字符串 "$^$"?
    1. 对于 stringr::words 中的常用词库,请创建正则表达式找出所有满足以下条件的单词:
    • a. 以 "y" 开头。
    • b. 以 "x" 结尾。
    • c. 恰好有三个字母。(不许用 str_length() 作弊!)
    • d. 有七个或更多字母。

由于这个列表很长,你可能需要使用 str_view() 的 match 参数来只显示匹配或不匹配的单词。

字符类与备选项

有许多可以匹配多个字符的特殊模式。你已经见过 .,它可以匹配除换行符以外的任意字符。另外还有四个有用的工具:

  • \d 匹配任意数字。
  • \s 匹配任意空白字符(例如空格、制表符、换行符)。
  • [abc] 匹配 a、b 或 c。
  • [^abc] 匹配除 a、b 或 c 以外的任意字符。

记住,要创建包含 \d 或 \s 的正则表达式,你需要在字符串中对 \ 进行转义,所以你需要输入 "\d" 或 "\s"。