आइए रूबी के gsub
के बारे में बात करते हैं विधि और इसका उपयोग कैसे करें। सबसे पहले, आपको इस विधि से खेलने के लिए एक स्ट्रिंग की आवश्यकता होगी।
क्यों?
क्योंकि gsub
. का पूरा बिंदु स्ट्रिंग के कुछ हिस्सों को बदलना है।
वास्तव में :
"जीएसयूबी" में "उप" का अर्थ "विकल्प" है, और "जी" का अर्थ "वैश्विक" है।
यहां एक उदाहरण स्ट्रिंग है :
str = "white chocolate"
मान लें कि हम "सफेद" शब्द को "अंधेरे" शब्द से बदलना चाहते हैं।
यहां बताया गया है :
str.gsub("white", "dark")
यह कह रहा है :
स्ट्रिंग को देखते हुए str
, पहले शब्द की सभी घटनाओं को बदलें (white
) दूसरे शब्द के साथ (dark
)।
इसका मतलब है कि हमें ज्यादा बेहतर चॉकलेट खाने को मिलती है।
ओह रुको, यह सिर्फ एक स्ट्रिंग है।
हम वह नहीं खा सकते!
वैसे भी…
रूबी का gsub
विधि सरल प्रतिस्थापन के अलावा और भी बहुत कुछ कर सकती है ।
आइए कुछ उदाहरण देखें।
पैटर्न को रेगुलर एक्सप्रेशन से बदलें
एक शब्द को बदलना ठीक है।
लेकिन क्या होगा अगर आप एक पैटर्न को बदल सकते हैं?
पसंद करें :
एक वर्ष, एक ईमेल पता, एक फोन नंबर, आदि।
आप कर सकते हैं!
यहां एक उदाहरण दिया गया है :
"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+
. के साथ ढूंढते हैं , जिसका अर्थ है "एक या अधिक अक्षरांकीय वर्ण"।
फिर :
- अगर यह "कुत्ता" है, तो हम इसे "बिल्ली" से बदल देते हैं
- यदि शब्द और कुछ है , हम इसे "कुत्ते" से बदल देते हैं
स्थिर मान, gsub के दूसरे पैरामीटर के साथ इस तरह का तर्क संभव नहीं है।
एक से अधिक शब्दों को हैश से बदलें
यदि आपके पास हैश का उपयोग करने के लिए प्रतिस्थापन की एक सूची है।
इसे पसंद करें :
colors = { "B" => "blue", "G" => "green", "R" => "red" }
यह एक अनुवाद शब्दकोश की तरह काम करता है, जहां कुंजियों को उनके मूल्यों से बदल दिया जाएगा।
यहां एक उदाहरण दिया गया है :
"BBBGR".gsub(/\w/, colors)
जिसका परिणाम होता है :
"bluebluebluegreenred"
सुनिश्चित करें कि आपका पहला तर्क कुंजियों से मेल खाएगा।
इस मामले में, \w
अलग-अलग वर्णों से मेल खाता है, इसलिए यह "बी" से मेल खाएगा और फिर इसे "नीले" से बदल देगा।
सारांश
आपने रूबी में gsub विधि के बारे में सीखा है! यह एक शक्तिशाली तरीका है जो आपको स्ट्रिंग के अंदर वर्णों को बदलने या बदलने की अनुमति देता है।
इसके अनेक उपयोग हैं :
- अवैध वर्णों को हटाना (दूसरे तर्क को एक खाली स्ट्रिंग बनाकर)
- प्लेसहोल्डर और एक्रोनिम्स को उनके पूर्ण मानों से बदलना
- स्ट्रिंग बदलने के लिए पैटर्न और तर्क का उपयोग करना
अब इस पद्धति से अभ्यास करने की आपकी बारी है ताकि आप अपना नया ज्ञान बना सकें।
पढ़ने के लिए धन्यवाद