2
我想将日期时间格式字符串(如"%m/%d/%y %H:%M"
)转换为正则表达式。我不知道格式字符串是什么,我不必处理所有的情况,所以我一直在试图将gsub放入字符串中。将Ruby DateTime格式转换为正则表达式
DATEFORMAT = "%m/%d/%y %H:%M"
def date_format_to_regex
format = DATEFORMAT
format = format.gsub(/\//,'\/')
format = format.gsub(/%[ymdCHI]/,'[[:digit:]]{2}') #two digits
format = format.gsub(/%[YMS]/,'[[:digit:]]{4}') #four digits
@date_regex = Regexp.new(format)
end
但是那个螺丝了很多斜线
"%m/%d/%y %H:%M == (?-mix:[[:digit:]]{2}\\/[[:digit:]]{2}\\/[[:digit:]]{2} [[:digit:]]{2}:[[:digit:]]{4})"
我不是Ruby的专家,但我不认为你想要逃避你更换'/'的输出在第一个gsub调用。在左边逃跑,而不是在右边。 – Madbreaks 2012-03-09 23:15:41
''\ /''和'“\\ /”'相同 - 如果不在'/ regex string literal /'=里面,'/'不需要转义'尝试删除'format = format.gsub(/ //,'\ /')'...... – Aprillion 2012-03-09 23:27:12
是的,第一个gsub似乎没有做任何事情......你最终想得到什么? – Jwosty 2012-03-10 00:12:31