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

coll() 的缺点是速度慢;由于判断哪些字符相同的规则很复杂,coll() 相比 regex() 和 fixed() 要慢得多。

  • 正如你在 str_split() 中看到的,你可以使用 boundary() 来匹配边界。你也可以将其与其他函数一起使用:

x <- "This is a sentence." str_view_all(x, boundary("word"))

str_extract_all(x, boundary("word")) #> [[1]] #> [1] "This" "is" "a" "sentence"

练习

    1. 使用 regex() 与使用 fixed() 查找所有包含 \ 的字符串,你会怎么做?
    1. sentences 中最常见的五个单词是什么?

正则表达式的其他用途

基础 R 中有两个同样使用正则表达式的实用函数:

  • apropos() 会搜索全局环境中所有可用的对象。如果你记不清函数的名称,这会很有用:

apropos("replace") #> [1] "%+replace%" "replace" "replace_na" #> [4] "str_replace" "str_replace_all" "str_replace_na" #> [7] "theme_replace"

  • dir() 会列出一个目录中的所有文件。pattern 参数接受一个正则表达式,并且只返回匹配该模式的文件名。例如,你可以用以下命令找到当前目录中所有的 R Markdown 文件:

head(dir(pattern = "\.Rmd$")) #> [1] "communicate-plots.Rmd" "communicate.Rmd"