2010-01-21 8 views

Odpowiedz

34

Istnieją dwa sposoby:

RegEx:

if mystring =~ /^value(A|B|C)$/ # Use /\Avalue(A|B|C)\Z/ here instead 
    # do something    # to escape new lines 
end 

Albo, bardziej wyraźnie,

if ["valueA", "valueB", "valueC"].include?(mystring) 
    # do something 
end 

nadzieję, że pomoże!

+0

w Ruby, naprawdę powinieneś dotrzeć do kotew \ A i \ Z, chyba że masz pewność, że ciąg zawiera zero nowych linii. –

+0

@glennjackman, Czy zamiast tego będzie to '/ \ Avalue (A | B | C) \ Z /'? – jerhinesmith

+0

tak, rzeczywiście. Wpływa to niestety na czytelność. –

5

Jak „bout

if %w(valueA valueB valueC).include?(mystring) 
    # do something 
end 
1

Zakładając, że chcesz, aby rozszerzyć tę funkcjonalność z innymi grupami meczu, można też użyć sprawy:

case mystring 
when "valueA", "valueB", "valueC" then 
#do_something 
when "value1", "value2", "value3" then 
#do_something else 
else 
#do_a_third_thing 
end 
Powiązane problemy