2010-01-21 12 views

उत्तर

34

वहाँ दो तरीके हैं:

RegEx:

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

या, अधिक स्पष्ट रूप

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

आशा है कि मदद करता है!

+0

रूबी में, आप वास्तव में लंगर के लिए पहुँचना चाहिए \ ए और \ ज़ेड जब तक कि आप सुनिश्चित न हों कि स्ट्रिंग में शून्य न्यूलाइन हैं। –

+0

@glennjackman, क्या वह '/ \ Avalue (ए | बी | सी) \ Z /' होगा? – jerhinesmith

+0

हाँ, वास्तव में। यह दुर्भाग्य से पठनीयता को खराब कर देता है। –

5

कैसे 'मुक्केबाज़ी

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

यह मानकर आप अन्य मैच समूहों के साथ इस कार्यक्षमता का विस्तार करना चाहते हैं, तो आप भी इस मामले इस्तेमाल कर सकते हैं:

case mystring 
when "valueA", "valueB", "valueC" then 
#do_something 
when "value1", "value2", "value3" then 
#do_something else 
else 
#do_a_third_thing 
end 
संबंधित मुद्दे