एक पैटर्न से मेल खाते वर्णों को हटाना

Go:
एक पैटर्न से मेल खाते वर्णों को हटाना

कैसे:

Go में, विशेष पैटर्न से मेल खाते वर्णों को हटाना regexp पैकेज का उपयोग करके दक्षतापूर्वक किया जा सकता है। यहाँ, हम एक उदाहरण के रूप में, सभी अंकों को हटाने के बाद, फिर एक तार से सभी गैर-अल्फान्यूमेरिक वर्णों को हटाने का वर्णन करेंगे।

  1. सभी अंक हटाना:
package main

import (
    "fmt"
    "regexp"
)

func main() {
    text := "Go1 अच्छा है, पर Go2 और भी अच्छा होगा! अब: 2023."
	
    // अंकों के लिए नियमित अभिव्यक्ति कम्पाइल करें
    re, err := regexp.Compile("[0-9]+")
    if err != nil {
        fmt.Println("रेगेक्स कंपाइल करने में त्रुटि:", err)
        return
    }
	
    // अंकों को खाली स्ट्रिंग से बदलें
    result := re.ReplaceAllString(text, "")
	
    fmt.Println(result) // आउटपुट: Go अच्छा है, पर Go और भी अच्छा होगा! अब: .
}
  1. सभी गैर-अल्फान्यूमेरिक वर्ण हटाना:
package main

import (
    "fmt"
    "regexp"
)

func main() {
    text := "Go प्रोग्रामिंग भाषाओं में #1 @ है!"
	
    // गैर-अल्फान्यूमेरिक वर्णों के लिए नियमित अभिव्यक्ति कम्पाइल करें
    re, err := regexp.Compile("[^a-zA-Z0-9]+")
    if err != nil {
        fmt.Println("रेगेक्स कंपाइल करने में त्रुटि:", err)
        return
    }
	
    // गैर-अल्फान्यूमेरिक वर्णों को खाली स्ट्रिंग से बदलें
    result := re.ReplaceAllString(text, "")
	
    fmt.Println(result) // आउटपुट: Goप्रोग्रामिंगभाषाओंमें1है
}

गहराई से विचार:

Go में regexp पैकेज नियमित अभिव्यक्तियों के साथ पैटर्न मिलान और हेरफेर के लिए एक शक्तिशाली इंटरफेस प्रदान करता है। इसकी कार्यान्वयन RE2 से लिया गया है, एक नियमित अभिव्यक्ति लाइब्रेरी जो लीनियर समय निष्पादन की गारंटी देती है, कुछ अन्य रेगेक्स इंजनों में मौजूद “आपदाजनक पीछे हटना” समस्याओं से बचती है। यह Go के रेगेक्स को विभिन्न अनुप्रयोगों के लिए सुरक्षित और कुशल बनाती है।

जबकि regexp पैकेज पैटर्नों से निपटने का एक व्यापक समाधान है, यह ध्यान देने योग्य है कि सरल या अत्यंत विशिष्ट स्ट्रिंग हेरफेरों के लिए, अन्य स्ट्रिंग फ़ंक्शंस जैसे कि strings.Replace(), strings.Trim(), या स्लाइसिंग अधिक प्रदर्शनकारी विकल्प प्रदान कर सकते हैं। नियमित अभिव्यक्तियाँ एक शक्तिशाली उपकरण हैं, लेकिन उनका सापेक्षिक गणितीय खर्च यह सुझाव देता है कि जिन ऑपरेशनों को उनके बिना निर्दिष्ट किया जा सकता है, उनके लिए मानक पुस्तकालय विकल्पों की खोज कभी-कभी सरल और अधिक कुशल कोड का नेतृत्व कर सकती है।