2013-01-16 8 views
5

मैं एक सरणी एक आंशिक स्ट्रिंग का उपयोग के माध्यम से खोज करने के लिए, और उसके बाद सूचकांक जहां कि स्ट्रिंग पाया जाता है प्राप्त करना चाहते हैं। उदाहरण के लिए:मैं कैसे एक आंशिक स्ट्रिंग का उपयोग एक सरणी की खोज, और सूचकांक वापसी करते हैं?

a = ["This is line 1", "We have line 2 here", "and finally line 3", "potato"] 
a.index("potato") # this returns 3 
a.index("We have") # this returns nil 

a.any? का उपयोग कर एक सही सही/गलत बयान वापस आ जाएगी a.grep का उपयोग करते हुए संपूर्ण स्ट्रिंग वापस आ जाएगी, और, लेकिन न तो रिटर्न सूचकांक जहां मैच पाया गया था, या कम से कम मैं समझ नहीं इसे कैसे करना है।

मैं कोड का एक टुकड़ा है कि एक फ़ाइल में लिखा है, एक विशिष्ट हेडर के लिए लग रहा है, और फिर आगे काम कर रहा हूँ कि शीर्ष लेख के सूचकांक रिटर्न तो यह उपयोग कर सकते हैं के रूप में एक भविष्य की खोजों के लिए ऑफसेट। किसी विशिष्ट अनुक्रमणिका से मेरी खोज शुरू किए बिना, मेरी अन्य खोजों को झूठी सकारात्मक मिलेगी।

+0

http://www.ruby-doc.org/core-1.9.3/String.html#method-i-3D-7E – oldergod

+0

आप केवल सरणी चाहते हैं इंडेक्स जहां स्ट्रिंग मिली, या सरणी अनुक्रमणिका, साथ ही उस सरणी तत्व में स्ट्रिंग में ऑफ़सेट? –

+0

बस पहले एक, लेकिन मैं, बस भविष्य में उपयोग के लिए एक दूसरे में रुचि होगी क्योंकि कि लगता है जैसे कि यह पता करने के लिए बहुत उपयोगी हो जाएगा! – user1976679

उत्तर

13

एक ब्लॉक का प्रयोग करें।

a.index{|s| s.include?("We have")} 

या

a.index{|s| s =~ /We have/} 
+0

कमाल! मैंने सोचा कि केवल सच/गलत के साथ काम करेगा, लेकिन मैं गलत था! यह पूरी तरह से काम करता है, धन्यवाद! – user1976679

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