使用R从文本中提取日期

时间:2018-05-27 23:39:10

标签: r regex gsub

我的数据框看起来像

df <- setNames(data.frame(c("2 June 2004, 5 words, ()(","profit, Insight, 2 May 2004, 188 words,  reports, by ()("), stringsAsFactors = F), "split")

我想要的是分割日期和单词的列到目前为止我找到了 &#34; Extract date text from string&#34;

lapply(df2, function(x) gsub(".*(\\d{2} \\w{3} \\d{4}).*", "\\1", x))

但它不适用于我的例子,感谢你一如既往的帮助

1 个答案:

答案 0 :(得分:1)

由于只有一列,我们可以在提取列后直接使用gsub/sub。在模式中,日期可以是1或更多,类似地,单词有3个(&#39; May&#39;)或4个字符(&#39; June&#39;),所以我们需要进行这些更改

sub(".*\\b(\\d{1,} \\w{3,4} \\d{4}).*", "\\1", df$split)
#[1] "2 June 2004" "2 May 2004"