Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

Ruby के Gsub मेथड का उपयोग करने के 3 शक्तिशाली तरीके

एक रेगुलर एक्सप्रेशन के साथ पैटर्न बदलें

एक सिंगल शब्द को बदलना ठीक है।

लेकिन क्या होगा अगर आप एक पैटर्न को बदल सकते हैं?

जैसे:

एक वर्ष, एक ईमेल एड्रेस, एक फोन नंबर, आदि।

आप कर सकते हैं!

यहाँ एक उदाहरण है:

"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 मेथड के बारे में सीखा! यह एक शक्तिशाली मेथड है जो आपको एक स्ट्रिंग के अंदर कैरेक्टर्स को बदलने, या प्रतिस्थापित करने की अनुमति देता है।

इसके कई उपयोग हैं:

  • अमान्य कैरेक्टर्स को हटाना (दूसरे आर्गुमेंट को खाली स्ट्रिंग बनाकर)
  • प्लेसहोल्डर्स और संक्षिप्ताक्षरों को उनके पूर्ण मानों से बदलना
  • एक स्ट्रिंग को बदलने के लिए पैटर्न और लॉजिक का उपयोग करना

Ruby के Gsub मेथड का उपयोग करने के 3 शक्तिशाली तरीके

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

पढ़ने के लिए धन्यवाद 🙂


  1. Ruby के grep मेथड में महारत: कोड उदाहरणों के साथ एक व्यावहारिक गाइड Ruby के grep मेथड में महारत: कोड उदाहरणों के साथ एक व्यावहारिक गाइड

    आइए grep मेथड के बारे में बात करते हैं। यह मेथड आपके लिए क्या कर सकता है? आप enumerable ऑब्जेक्ट्स को फ़िल्टर करने के लिए Grep का उपयोग कर सकते हैं, जैसे Arrays और Ranges। "लेकिन select पहले से ही ऐसा करता है!" हाँ, लेकिन grep अलग तरीके से काम करता है और अलग परिणाम उत्पन्न करता है। आइए कुछ

  1. Ruby के Map मेथड में महारत: उदाहरणों के साथ एक व्यावहारिक गाइड Ruby के Map मेथड में महारत: उदाहरणों के साथ एक व्यावहारिक गाइड

    Map एक Ruby मेथड है जिसका उपयोग आप Arrays, Hashes और Ranges के साथ कर सकते हैं। map का मुख्य उपयोग डेटा को ट्रांसफॉर्म करना है। उदाहरण के लिए: स्ट्रिंग्स की एक सरणी दिए जाने पर, आप हर स्ट्रिंग पर जा सकते हैं और हर कैरेक्टर को UPPERCASE बना सकते हैं। या यदि आपके पास User ऑब्जेक्ट्स की एक सूची है... आ

  1. रूबी स्ट्रक्ट्स और OpenStruct में महारत: कुशल वैल्यू ऑब्जेक्ट्स रूबी स्ट्रक्ट्स और OpenStruct में महारत: कुशल वैल्यू ऑब्जेक्ट्स

    रूबी में स्ट्रक्ट क्या है? एक स्ट्रक्ट एक बिल्ट-इन रूबी क्लास है, इसका उपयोग वैल्यू ऑब्जेक्ट्स उत्पन्न करने वाली नई क्लासेस बनाने के लिए किया जाता है। एक वैल्यू ऑब्जेक्ट संबंधित विशेषताओं को एक साथ संग्रहीत करने के लिए उपयोग किया जाता है। यहां एक उदाहरण है: दो निर्देशांकों (x और y) के साथ एक Point।