正则表达式任何数字或类型,后跟“ .pdf”

时间:2018-06-21 17:45:56

标签: r regex

我正在尝试编写一个gsub函数,该函数将删除所有以.pdf结尾的记录。我的尝试gsub(".*([A-Z][1-9][.pdf]?).*", "", "12asdf.pdf")

2 个答案:

答案 0 :(得分:1)

您需要的表达式是:

gsub(".*\\.pdf$", "", "12asdf.pdf")

这会将任何以.pdf结尾的字符串替换为空字符串

答案 1 :(得分:1)

stringr软件包(tidyverse生态系统的一部分)具有函数str_remove,该函数搜索正则表达式模式并将第一个匹配项替换为空白(或str_remove_all删除字符串中的所有匹配项)。这是将""设置为gsub或其他功能的替代形式的快捷方式。

对于正则表达式,^.*\\.pdf$将匹配以零个或多个字符开头的字符串的开头(即,可选的是,在字符末尾以“ .pdf”开头的字符)至“ .pdf”字符串。

files <- c("doc1.pdf", "doc2.pdf", "picture1.jpg", "doc3.pdf",
           "bad.pdftitle.xlsx", ".pdf")
stringr::str_remove(files, "^.*\\.pdf$")
#> [1] ""                  ""                  "picture1.jpg"     
#> [4] ""                  "bad.pdftitle.xlsx" ""