एक रेगुलर एक्सप्रेशन के साथ पैटर्न बदलें
एक सिंगल शब्द को बदलना ठीक है।
लेकिन क्या होगा अगर आप एक पैटर्न को बदल सकते हैं?
जैसे:
एक वर्ष, एक ईमेल एड्रेस, एक फोन नंबर, आदि।
आप कर सकते हैं!
यहाँ एक उदाहरण है:
"a1".gsub(/\d/, "2") # "a2"
पहला आर्गुमेंट एक रेगुलर एक्सप्रेशन है, और इसे यहाँ कवर करना बहुत अधिक है।
लेकिन यह एक पैटर्न-मैचिंग भाषा है।
इस मामले में, \d नंबरों की तलाश करता है, जैसे "a1" में नंबर "1"।
आप यह भी कर सकते हैं:
"a1".gsub(/(\w)(\d)/, '\2\1')
जिसके परिणामस्वरूप:
"1a"
हमने क्रम बदल दिया!
यह "कैप्चर ग्रुप्स" नामक एक सुविधा का उपयोग करके काम करता है।
हम ग्रुप्स को पहले ग्रुप के लिए \1, दूसरे ग्रुप के लिए \2, आदि के रूप में उपयोग कर सकते हैं।
ग्रुप्स पैरेन्थिसिस के साथ बनाए जाते हैं।
ब्लॉक्स के साथ उन्नत Gsub
जब आप gsub के साथ ब्लॉक का उपयोग करना शुरू करते हैं तो चीजें वास्तव में दिलचस्प हो जाती हैं।
क्यों?
क्योंकि एक ब्लॉक के भीतर आप यह तय करने के लिए लॉजिक का उपयोग कर सकते हैं कि किसी चीज़ को कैसे बदला जाए।
एक स्थिर मान का उपयोग करने के बजाय।
उदाहरण के लिए:
"dog".gsub(/\w+/) { |animal| animal == "dog" ? "cat" : "dog" }
हम \w+ के साथ जानवर को ढूंढते हैं, जिसका अर्थ है "एक या अधिक अल्फ़ान्यूमेरिक कैरेक्टर्स"।
फिर:
- यदि यह "dog" है, तो हम इसे "cat" से बदल देते हैं
- यदि शब्द कुछ और है, तो हम इसे "dog" से बदल देते हैं
इस तरह का लॉजिक gsub के दूसरे पैरामीटर, एक स्थिर मान के साथ संभव नहीं है।
एक हैश के साथ कई टर्म्स बदलें
यदि आपके पास करने के लिए प्रतिस्थापन की एक सूची है तो आप एक हैश का उपयोग कर सकते हैं।
इस तरह का एक:
colors = { "B" => "blue", "G" => "green", "R" => "red" }
यह एक अनुवाद डिक्शनरी की तरह काम करता है, जहां कीज़ को उनके वैल्यूज से बदल दिया जाएगा।
यहाँ एक उदाहरण है:
"BBBGR".gsub(/\w/, colors)
जिसके परिणामस्वरूप:
"bluebluebluegreenred"
सुनिश्चित करें कि आपका पहला आर्गुमेंट कीज़ से मेल खाएगा।
इस मामले में, \w व्यक्तिगत कैरेक्टर्स से मेल खाता है, इसलिए यह "B" से मेल खाएगा फिर इसे "blue" से बदल देगा।
सारांश
आपने Ruby में gsub मेथड के बारे में सीखा! यह एक शक्तिशाली मेथड है जो आपको एक स्ट्रिंग के अंदर कैरेक्टर्स को बदलने, या प्रतिस्थापित करने की अनुमति देता है।
इसके कई उपयोग हैं:
- अमान्य कैरेक्टर्स को हटाना (दूसरे आर्गुमेंट को खाली स्ट्रिंग बनाकर)
- प्लेसहोल्डर्स और संक्षिप्ताक्षरों को उनके पूर्ण मानों से बदलना
- एक स्ट्रिंग को बदलने के लिए पैटर्न और लॉजिक का उपयोग करना

अब इस मेथड के साथ अभ्यास करने की आपकी बारी है ताकि आप अपने नए ज्ञान को स्थायी बना सकें।
पढ़ने के लिए धन्यवाद 🙂