2011-06-13 4 views
5

Existe-t-il un moyen de faire fonctionner correctement cette fonction avec un cas quand?cas où avec correspondance

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 

Je sais que je peux le faire si:

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 

Juste à la recherche d'une solution plus propre.

Répondre

9

Il suffit de retirer le match:

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 
+0

grâce qui était vraiment facile. –

Questions connexes