случай, когда со спичкой - PullRequest
6 голосов
/ 14 июня 2011

Есть ли способ заставить это работать правильно в случае когда?

field = "head_count_2011_10_75"
case field
  when match(/head_count_\d{4}_\d{1,2}_\d{1,4}/i)
    puts "regex 1"
  when match(/dmi_\d{4}_\d{1,2}_\d{1,4}/i)
    puts "regex 2
end

Я знаю, что могу сделать это, если:

if field.match(/head_count_\d{4}_\d{1,2}_\d{1,4}/i)
  puts "regex 1"
elsif field.match(/dmi_\d{4}_\d{1,2}_\d{1,4}/i)
  puts "regex 2"
end

Просто ищу более чистое решение.

1 Ответ

10 голосов
/ 14 июня 2011

Просто удалите совпадение:

field = "head_count_2011_10_75"
case field
  when /head_count_\d{4}_\d{1,2}_\d{1,4}/i
    puts "regex 1"
  when /dmi_\d{4}_\d{1,2}_\d{1,4}/i
    puts "regex 2
end
...