आइए grep मेथड के बारे में बात करते हैं।
यह मेथड आपके लिए क्या कर सकता है?
आप enumerable ऑब्जेक्ट्स को फ़िल्टर करने के लिए Grep का उपयोग कर सकते हैं, जैसे Arrays और Ranges।
"लेकिन select पहले से ही ऐसा करता है!"
हाँ, लेकिन grep अलग तरीके से काम करता है और अलग परिणाम उत्पन्न करता है।
आइए कुछ उदाहरण देखते हैं।
Ruby Grep मेथड उदाहरण
यह सरणी दी गई है:
objects = ["a", "b", "c", 1, 2, 3, nil]
आप केवल स्ट्रिंग्स प्राप्त करने के लिए grep का उपयोग कर सकते हैं:
objects.grep(String) # ["a", "b", "c"]
केवल इंटीजर्स:
objects.grep(Integer) # [1, 2, 3]
या वह सब कुछ जो nil नहीं है:
objects.grep_v(NilClass) # ["a", "b", "c", 1, 2, 3]
यदि आपके पास शब्दों की एक सरणी है:
fruit = ["apple", "orange", "banana"]
आप "a" से शुरू होने वाले सभी शब्द ढूंढ सकते हैं:
fruit.grep(/^a/) # ["apple"]
या जो "e" पर समाप्त होते हैं:
fruit.grep(/e$/) # ["apple", "orange"]
और यदि आपके पास नंबरों की सूची है:
numbers = [9, 10, 11, 20]
आप एक रेंज के भीतर सभी नंबरों की सूची प्राप्त कर सकते हैं:
numbers.grep(5..10) # [9, 10]
जब आप ब्लॉक का उपयोग करते हैं तो आप map मेथड और select को एक में जोड़ सकते हैं:
numbers.grep(5..10) { |n| n * 2 } # [18, 20]
यदि आप फैंसी बनना चाहते हैं...
times_two = ->(x) { x * 2 } numbers.grep(5..10, ×_two) # [18, 20]
बहुत बढ़िया, है ना?
Grep बनाम Select: अंतर समझना
grep कैसे काम करता है?
ट्रिक Ruby में === मेथड (ट्रिपल इक्वल्स) के साथ है।
Grep आपके द्वारा पास किए गए आर्गुमेंट पर इस मेथड को कॉल करता है।
और यह पता चलता है कि क्लासेज, रेगुलर एक्सप्रेशन्स और रेंजेज सभी === को लागू करते हैं।
वे इस मेथड को क्लास के लिए समझ में आने वाले तरीके से लागू करते हैं।
उदाहरण के लिए:
- क्लासेज (जैसे
IntegerयाArray), दिए गए ऑब्जेक्ट की क्लास से तुलना करते हैं। - रेंजेज जांचते हैं कि नंबर रेंज में शामिल है या नहीं।
- रेगुलर एक्सप्रेशन्स जांचते हैं कि कोई मिलान है या नहीं।
तो जब आप कहते हैं:
objects.grep(Integer)
आप वास्तव में कह रहे हैं:
objects.select { |obj| Integer === obj }
लंबे समय तक, मैं grep के बारे में भ्रमित था...
जब तक मुझे यह समझ नहीं आया।
select मेथड ब्लॉक के परिणामों के आधार पर सूची को फ़िल्टर करता है।
यदि ब्लॉक true का मूल्यांकन करता है, तो वह तत्व चुना जाता है।
लेकिन grep केवल === का उपयोग करके दो चीजों की तुलना करता है।
आप कह सकते हैं कि grep select का एक अधिक विशिष्ट संस्करण है!
Ruby Grep माइंडमैप

वीडियो ट्यूटोरियल देखें
सारांश
आपने Ruby में grep मेथड के बारे में सीखा! जब आप समझते हैं कि यह कैसे काम करता है तो यह एक बहुत ही उपयोगी मेथड है।
अभ्यास करना सुनिश्चित करें ताकि यह बैठ जाए।
अभ्यास महारत की कुंजी है!