【发布时间】:2021-11-28 22:05:08
【问题描述】:
我正在尝试使用 R 中的正则表达式从文件名中提取大量信息。当我匹配模式时,str_view() 正在向我显示正确的字符串集。然而,当我试图将它们分拆并提取剩余部分时,它不起作用。我也试过 str_extract() 但它不起作用。我做错了什么?
fname <- "TC2L6C_2020-08-14_1516_6C-ASG_29_00020.tab"
fext <- tools::file_path_sans_ext(fname)
stringr::str_view(fext, ".*-ASG_\\d+_", match = TRUE)
P_num <- gsub(".*-ASG_\\d{2}_", "", fext)
P_num <- stringr::str_extract(fname, "(?<=-ASG_\\d+)([^_])*(?=\\.tab)")
【问题讨论】:
-
fname是您的输入字符串。你的预期输出是什么? -
我的预期输出是最后五位数字。这个问题有点误导。正如我刚刚使用单个文件名测试的那样, gsub() 似乎可以工作。但是,我通过 list.files() 获取文件名。那时,它返回我 NA 作为输出。
-
这就是我所困惑的。
gsub似乎返回了共享示例的预期输出。