与 R 中的正则表达式的匹配期

Match period with Regex in R

R 中的一个简单的正则表达式操作,但即使是看起来相关的 other questions on 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")

失败——我错过了什么?

您可以使用 grep。

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

grep("[[:digit:]]\.csv$", x, value=T)