Rails:如何从字符串中提取纯英文日期

时间:2015-09-16 01:20:00

标签: ruby-on-rails regex

如果我有字符串

  

string =“Robert Lee Frost(1874年3月26日 - 1963年1月29日)是美国人   诗人“

从中提取日期的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

不确定regexp在这里是否最好 - 但您可以尝试以下方法:

((January|February|March|April|May|June|July|August|September|October|November|December)\s(\d?\d),\s(\d{4}))

这应该提取整个日期+日期的3个组成部分(月,日,年),并将它们保存在正则表达式变量中。您可以在Rubular

中进行试验
str = "Robert Lee Frost (March 26, 1874 – January 29, 1963) was an American poet"
pattern = /((January|February|March|April|May|June|July|August|September|October|November|December)\s(\d?\d),\s(\d{4}))/

dates = str.scan(pattern).each do |matches|
  Date.parse(matches[0])
end

dates将保留出生/已故的日期。警惕不匹配。

答案 1 :(得分:0)

@tamersalama打败了我。

((January|February|March|April|May|June|July|August|September|October|November|December) [0-9]{2}, [0-9]{4})