Это мой первый вопрос (хотя в прошлом я нашел много отличных решений для квестов в Stack Overflow - это мой первый источник помощи).Может ли кто-нибудь помочь мне сушить этот REGEX?
У меня есть текстовые строки, содержащие месяц и серию дат. Иногда в строке есть два месяца.
date1 = "January 9, 10, 15, 16, 17, 18, 22, 23, 24"
date2 = "September 19, 20, 25, 26, 27, 28, October 2, 3, 4, 10, 11"
Я написал очень модный код, который тянет месяц со строки и добавляет каждую дату, плюс год. Однако есть несколько вопросов, которые я просто не могу понять.
Перебор ДАТ: Я знаю, что я должен использовать каждый метод итераций по датам. Я попытался, но я не могу заставить это работать, поэтому я делаю это сложным путем, объединяя месяц с каждым элементом даты. Очевидная проблема заключается в том, что я не знаю, сколько дат будет, поэтому мне нужно построить до самой длинной строки и использовать оператор IF, чтобы определить, достиг ли я конца строки. Я должен использовать date1.length = x plus DO EACH, но я не могу заставить его работать.
КОНКАТЕНТИРОВАТЬ ДЕНЬ МЕСЯЦА ДЕНЬ: мой очень плохой мокрый код работает до тех пор, пока вы не держите monrg день и год вместе, но как мне избавиться от скобок и цитат?
МНОЖЕСТВЕННЫЕ МЕСЯЦЫ: Как выбрать второй месяц в строке и объединить ТОЛЬКО отдельные даты, следующие за именем месяца, чтобы получить MONTH/DD/YY?
Вот пример моего очень плохого кода.
require 'rubygems'
require 'nokogiri'
require 'open-uri'
date1 = "January 9, 10, 15, 16, 17, 18, 22, 23, 24"
date2 = "September 19, 20, 25, 26, 27, 28, October 2, 3, 4, 10, 11"
datetext = date1.scan(/([\w\-]+)/) #=> pulls the whole string
datetext2 = date1.scan(/(\w*)\s?/)[0] #=> this pulls the month
datenumbers = date1.scan(/(\d+)/)
firstdate = datenumbers[0] #=>ithe first date following the first month
seconddate = datenumbers[1]
year = "2014"
mdy1 = "#{datetext2} #{firstdate} #{year}"
mdy2 = "#{datetext2} #{seconddate} #{year}"
puts date1
puts " "
puts datetext2 #=> this variable adds the [0] delimiter to pull the 1st month
puts firstdate
puts " "
puts mdy1
puts mdy2
puts " "
Гэри, вот несколько предложений о написании вопросов: 1. устранить все посторонние заявления (например, здесь три запроса 'require'); 2. Когда вы приводите пример (примеры хороши), всегда показывайте желаемый результат и, если применимо, неправильный результат, который вы получаете. –