匹配时的情况

时间:2011-06-13 21:06:02

标签: ruby-on-rails regex switch-statement

有没有办法让这个工作正确的情况下?

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 个答案:

答案 0 :(得分:10)

只需删除匹配项:

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