2010-10-14 19 views
37

मैं मैं सिर्फ तरह इस सरणी खोज करेंगे कैसे ताररूबी में एक सरणी कैसे खोजें?

arr = ['sandra', 'sam', 'sabrina', 'scott', 'mark', 'melvin'] 

की एक सरणी है कहो मैं रेल में एक सक्रिय रिकॉर्ड वस्तु होगा। उदाहरण के लिए, क्वेरी "sa" ['sandra', 'sam', 'sabrina'] वापस आ जाएगी।

धन्यवाद!

+0

मामले में आप भविष्य में इस तरह की चीजों के बारे में चिंता, माणिक एपीआई की जाँच: http://ruby-doc.org/core/ – brad

+0

धन्यवाद। – Tim

उत्तर

59
arr.grep(/^sa/) 
+0

पूरी तरह से काम करेगा, धन्यवाद! – Tim

+16

उह ... अगर यह एक मेमोरी सरणी है, तो उपर्युक्त _any_ sql हिट नहीं करता है। – Andrew

+0

उदाहरण के लिए अगर मुझे पूरा नाम 'sabrina' खोजना है, तो प्रत्येक नाम, regex या grep को लूप करना कुछ प्रदर्शन देगा? – kamal

21
>> arr.select {|s| s.include? 'sa'} 
=> ["sandra", "sam", "sabrina"] 
9

select विधि और regex का एक संयोजन काम करेगा

arr.select {|a| a.match(/^sa/)} 

यह एक उपसर्गों के लिए लग रहा है, लेकिन यह सबस्ट्रिंग या कुछ और करने के लिए बदला जा सकता है।

संबंधित मुद्दे