• R语言已解决
  • 怎么用R语言的正则表达式提取win10的某文件名(去除后缀)

例如:
library(stringr)

str_extract("C:/File/NMNMhijk/AABBCC.XPT", pattern = "(?<=/)[A-Z].*(?=.XPT)")

目标是提取 AABBCC ,结果只能提取到 File/NMNMhijk/AABBCC
像这种有多个重复的/符号出现,该怎么写才能读取到最后一次出现的/呢?

因为有些文件夹不只有这么几“层”,比如用别人的电脑时,文件路径就不固定了。
所以我想直接写出匹配到最后一层/的正则表达式。

    monster_white 我想直接写出匹配到最后一层/的正则表达式

    已经想歪了,快别想了(要是路径分隔符是 \ 呢)。快用 basename()

    tools::file_path_sans_ext(basename(path))  # base R

    或者

    sub('[.]XPT$', '', basename(path))

    或者

    xfun::sans_ext(basename(path))  # 用 xfun 包