Разбор даты из текста с использованием Ruby - PullRequest
1 голос
/ 17 февраля 2010

Я пытаюсь выяснить, как извлечь даты из неструктурированного текста, используя Ruby.

Например, я бы хотел разобрать дату из этой строки: «Заявки, запущенные после 12:00 утра по местному времени (EST) 1 февраля 2010 г., рассматриваться не будут».

Есть предложения?

Ответы [ 3 ]

7 голосов
/ 17 февраля 2010

Попробуйте Chronic (http://chronic.rubyforge.org/), возможно, он сможет разобрать, что в противном случае вам придется использовать Date.strptime.

0 голосов
/ 01 июня 2015

Также вы можете попробовать gem , который поможет найти дату в строке.

Exapmle:

input = 'circa 1960 and full date 07 Jun 1941'
dates_from_string = DatesFromString.new
dates_from_string.get_structure(input)

#=> return
# [{:type=>:year, :value=>"1960", :distance=>4, :key_words=>[]},
# {:type=>:day, :value=>"07", :distance=>1, :key_words=>[]},
# {:type=>:month, :value=>"06", :distance=>1, :key_words=>[]},
# {:type=>:year, :value=>"1941", :distance=>0, :key_words=>[]}]
0 голосов
/ 17 февраля 2010

Предполагается, что вам нужны только даты, а не даты:

require 'date'
string = "Applications started after 12:00 A.M. Midnight (EST) February 1, 2010 will not be considered."
r = /(January|February|March|April|May|June|July|August|September|October|November|December) (\d+{1,2}), (\d{4})/
if string[r]
  date =Date.parse(string[r])
  puts date
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...