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

正则表达式与R中的日期匹配,r,regex,date,extract,R,Regex,Date,Extract,我有多个pdf文件保存在一个文件夹中。我需要从数据帧中的每个文件中提取格式的第一个日期,如“2020年11月19日” 以下是我正在使用的代码: myextr2 <- function(pdffile) { text_data <- pdf_text(pdffile) text_collapsed_data <- paste0(text_data, collapse = '\n') g=stringi::stri_extract( text_collapsed_dat

我有多个pdf文件保存在一个文件夹中。我需要从数据帧中的每个文件中提取格式的第一个日期,如“2020年11月19日”

以下是我正在使用的代码:

myextr2 <- function(pdffile) {
  text_data <- pdf_text(pdffile)
  text_collapsed_data <- paste0(text_data, collapse = '\n')
  g=stringi::stri_extract( text_collapsed_data, regex = ("(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sep(tember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)/s+/d{1,2}/s+/d{4}")
  g[1]
}
files <- list.files(pattern = "pdf$")
pricing = sapply(files, myextr2)
pricing

需要这方面的帮助。

您可以使用
lubridate
软件包

library(lubridate)

d = "November 19 2020"
mdy(d)
# [1] "2020-11-19"

这里的正则表达式是我已经尝试过的,并且正在对我起作用 只是一个小小的修正,这是我之前发布的第一个日期值的第二个日期值 ''' str_extract_all(文本_折叠_数据 (b)Jan(Jan(uary)月(Jan(uary)月(uary)和(b)月(Jan(uary)月(Jan(uary)月(y)月(y)月(ust)月(ust)月(月)月(月)日)月(月)月(月)月(月)月(月)月(月)日)月(月)月(月)月(月)月(月)月)月(月)月(月)日)月(月)月)月(月)日)日)月(ust)月(年)月(月)月(月)日)月(月)月(月(月)日)日)月(月(月)日)日)月(月(月)日)日)月(Te(月)月(月)月)月(月)月(月)月(月)月)月(月)月)月(月(月)日)日)日)月(月(月(Te十月(ober)?十一月(余烬)?十二月(余烬)?)\s+\d{1,2}、\s+\d{4}” ,simplify=TRUE)[,2]
“”“

您好,我在正则表达式末尾缺少一个右括号,但无法提取任何日期。如果您包含一个简单的示例输入和所需的输出,可以用来测试和验证可能的解决方案,那么可以更容易地为您提供帮助。也可以看到:或者它是
\s
\d
,而不是
/s
/d
。(但我不知道R,因此可能需要转义反斜杠)。此外,“November”在示例中拼写错误(代码之外)。除此之外,模式本身。它只是有太多不必要的捕获组。
library(lubridate)

d = "November 19 2020"
mdy(d)
# [1] "2020-11-19"
library(stringr)

str_extract(d, "(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sep(tember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)\\s+\\d{1,2}\\s+\\d{4}")
# [1] "2020-11-19"