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