Как написать переключатель Ruby выражение (case… when) с регулярным выражением и обратными ссылками?

Я знаю, что могу написать оператор case в Ruby для проверки совпадения с регулярными выражениями. Однако я хотел бы использовать данные совпадения в моем операторе возврата. Что-то вроде этого полу-псевдокода:

foo = "10/10/2011"

case foo
    when /^([0-9][0-9])/
        print "the month is #{match[1]}"
    else
        print "something else"
end

Как я могу этого добиться?

Спасибо!


Просто примечание: я понимаю, что я бы никогда не стал использовать оператор switch для простого случая, как указано выше, но это только один пример. На самом деле то, что я пытаюсь достичь, - это сопоставление многих потенциальных регулярных выражений для даты, которые могут быть записаны различными способами, а затем соответствующий анализ их с помощью класса Date Ruby.

80
задан eugen 24 July 2011 в 10:51
поделиться