【问题标题】:Extract with regex a dates that might or might not contain also time [duplicate]使用正则表达式提取可能包含或不包含时间的日期[重复]
【发布时间】:2013-11-26 08:27:09
【问题描述】:

请考虑以下事项

library(stringr)

text <- c("blabla bla blabla bla 6:05, 15 July 2005, blabla bla", 
          "blabla bla bla 7:06, 3 November 2006, blabla bla",
          "blabla bla 24 November 2006, blabla bla",
          "blabla bla blabla bla bla blabla bla")

dates <- str_extract_all(text, ???)

我正在尝试从向量中提取所有日期,以防它们随时间一起出现。

【问题讨论】:

    标签: regex r stringr


    【解决方案1】:

    下次尝试展示您的尝试。以下作品,但可能有更有效的正则表达式模式可能

    pat <- paste0("([0-9]{1,2}:[0-9]{2}, )*[0-9]{1,2} (", paste(month.name, collapse = "|"), ") [0-9]{4}")
    
    pat
    ## [1] "([0-9]{1,2}:[0-9]{2}, )*[0-9]{1,2} (January|February|March|April|May|June|July|August|September|October|November|December) [0-9]{4}"
    
    
    regmatches(text, gregexpr(pat, text = text))
    ## [[1]]
    ## [1] "6:05, 15 July 2005"
    ## 
    ## [[2]]
    ## [1] "7:06, 3 November 2006"
    ## 
    ## [[3]]
    ## [1] "24 November 2006"
    ## 
    ## [[4]]
    ## character(0)
    ## 
    
    
    # or using stringr package
    
    str_extract_all(text, pat)
    ## [[1]]
    ## [1] "6:05, 15 July 2005"
    ## 
    ## [[2]]
    ## [1] "7:06, 3 November 2006"
    ## 
    ## [[3]]
    ## [1] "24 November 2006"
    ## 
    ## [[4]]
    ## character(0)
    ## 
    

    【讨论】:

      猜你喜欢
      • 2020-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-21
      相关资源
      最近更新 更多