这是我的第一个问题(尽管过去我发现了许多完美的堆栈溢出问题的解决方案 - 这是我的第一个帮助源)。任何人都可以帮我干这个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"
我写了一段非常WET的代码,从字符串中提取月份并添加每个日期,再加上年份。 但是,有几个问题我无法弄清楚。
穿过日期的ITERATING:我知道我应该使用EACH方法遍历日期。我尝试过,但我无法让它工作,所以我通过将每个月份与每个日期元素连接在一起来实现这一目标。这个问题的明显问题是,我不知道会有多少日期,所以我必须建立最长的字符串并使用IF语句来确定是否已达到字符串的末尾。我应该使用dates1.length = x加上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,消除所有多余的声明(例如,这里的三个“要求”陈述); 2.当你举一个例子(例子很好)时,总是显示所需的结果,并在适用的时候,得到不正确的结果。 – 2014-09-28 17:42:59