0

R中一个微不足道的正则表达式操作,但即使是其他看起来相关的SO问题也对我没有帮助

我有一个 csv 文件名列表——

library(plyr)
library(stringr)
library(magrittr)


set.seed("43212")

foo <- c(raply(3, 
          sample(letters, 3, T) %>% 
            paste0(collapse = "")),
         raply(3, 
          sample(0:9, 3, T) %>% 
            paste0(collapse = ""))) %>% 
         str_c(".csv") 

foo
[1] "hoo.csv" "wwc.csv" "lll.csv" "406.csv" "120.csv" "362.csv"

我想提取.csv名称以某个数字结尾的文件,并排除以字符结尾的文件名。

我以为我理解了 R 中的正则表达式和转义字符——但是这个:

foo %>% 
  extract(str_sub(., -5) == "\\d\\.csv")

失败——我错过了什么?

4

1 回答 1

3

您可以使用 grep。

grep("\\d\\.csv$", x, value=T)

或者

grep("[[:digit:]]\\.csv$", x, value=T)
于 2015-09-15T17:25:17.053 回答