monster_white 例如: library(stringr) str_extract("C:/File/NMNMhijk/AABBCC.XPT", pattern = "(?<=/)[A-Z].*(?=.XPT)") 目标是提取 AABBCC ,结果只能提取到 File/NMNMhijk/AABBCC 像这种有多个重复的/符号出现,该怎么写才能读取到最后一次出现的/呢? 因为有些文件夹不只有这么几“层”,比如用别人的电脑时,文件路径就不固定了。 所以我想直接写出匹配到最后一层/的正则表达式。
yihui monster_white 我想直接写出匹配到最后一层/的正则表达式 已经想歪了,快别想了(要是路径分隔符是 \ 呢)。快用 basename()。 tools::file_path_sans_ext(basename(path)) # base R 或者 sub('[.]XPT$', '', basename(path)) 或者 xfun::sans_ext(basename(path)) # 用 xfun 包