Grep变量并将结果存储在R中的向量中

mli*_*gar 5 grep r grepl

我有一个存储的txt文件列表A.path,我希望用grep它来查找与该文件相关的年份,并将今年保存到矢量中.但是,由于其中一些txt文件在其文本中有多年,我只想存储第一年.我怎样才能做到这一点?

我已经完成了类似的事情lapply,这就是我开始解决这个问题的方法:

lapply(A.path, function(i){
j <- paste0(scan(i, what = character(), comment.char='', quote=NULL),  collapse = " ")
year <- vector()
year[i] <- grep('[0-9][0-9][0-9][0-9]', j)
})
Run Code Online (Sandbox Code Playgroud)

grep可能不是正确使用的函数,因为它返回j每个函数的全部i.在这里使用什么是正确的功能?

pic*_*ick 5

将注释转换为答案,您可以使用gsubwith \\1来提取第一个匹配的值(即()正则表达式之间匹配的文本)

gsub(".*?([0-9]{4}).*", "\\1", j)
Run Code Online (Sandbox Code Playgroud)