2011-06-13 13 views
5

¿Hay alguna manera de que esto funcione correctamente con un estuche?case when with match

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 

sé que puedo hacerlo 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 

Sólo en busca de una solución más limpia.

Respuesta

9

Basta con retirar el partido:

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

gracias a que era muy fácil. –

Cuestiones relacionadas