@ ответ steenslag выглядит для действительных дат (в отличие от других ответов) но все еще может быть споткнулся:
str = "The first 10 may go 15/15/2015 with Lou (Introduced 06/04/2015)"
Date.parse(str)
#=> #<Date: 2015-05-10 ((2457153j,0s,0n),+0s,2299161j)>
Для обеспечения даты в указанном формате, вы можете сделать следующее:
require 'date'
def extract_date(str, fmt)
a = str.each_char
.each_cons(10)
.find { |a| Date.strptime(a.join, fmt) rescue nil }
a ? a.join : nil
end
Для str
, как описано выше:
extract_date(str, '%d/%m/%Y')
#=> "06/04/2015"
Второй пример:
extract_date("15/15/2015", '%d/%m/%Y')
#=> nil
Это всегда то же самое имя/формат? Я бы рекомендовал использовать регулярные выражения для этого. – Piccolo
@Piccolo да, это всегда один и тот же формат .. как я использую регулярное выражение для этого? Я не привык к этому. –