Parsing date à partir du texte en utilisant Ruby
-
21-09-2019 - |
Question
Je suis en train de comprendre comment extraire les dates de texte non structuré en utilisant Ruby.
Par exemple, je voudrais analyser la date de cette chaîne « Applications ont commencé après 00h00 à minuit (HNE) 1 Février 2010 ne seront pas pris en considération. »
Toutes les suggestions?
La solution
En supposant que vous voulez juste les dates et non datetimes:
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
Autres conseils
Essayez chronique ( http://chronic.rubyforge.org/ ), il pourrait être en mesure d'analyser qui, autrement, vous allez devoir utiliser Date.strptime.
Vous pouvez également essayer qui peut aider à trouver la date dans la chaîne.
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=>[]}]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow