Преобразование формата Ruby DateTime в регулярные выражения - PullRequest
2 голосов
/ 10 марта 2012

Я хотел бы преобразовать строку формата даты и времени, например "%m/%d/%y %H:%M", в регулярное выражение.Я не буду знать, что находится в строке формата, и мне не нужно обрабатывать каждый случай, поэтому я пытался просто вставить gsub в строку.

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})"

1 Ответ

1 голос
/ 10 марта 2012
DATEFORMAT = "%m/%d/%y %H:%M"

def date_format_to_regex    
  format = DATEFORMAT.gsub(/%[ymdCHI]/, "\\d{2}").gsub(/%[YMS]/, "\\d{4}")
  @date_regex = Regexp.new(format)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...