Go में रेगुलर एक्सप्रेशन: उदाहरणों के साथ पूरी गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Go में रेगुलर एक्सप्रेशन उदाहरणों के साथ: व्यावहारिक दृष्टिकोण

\n\n

रेगुलर एक्सप्रेशन (regexp) टेक्स्ट को पैटर्न के आधार पर खोजने, निकालने और बदलने का एक शक्तिशाली टूल है। Go (Golang) में रेगुलर एक्सप्रेशन के लिए स्टैंडर्ड regexp पैकेज का उपयोग किया जाता है। इस लेख में हम मुख्य फंक्शन, सिंटैक्स और व्यावहारिक उदाहरणों को समझेंगे, जो आपको अपने प्रोजेक्ट्स में रेगुलर एक्सप्रेशन का आत्मविश्वास से उपयोग करने में मदद करेंगे।

\n\n

regexp पैकेज की मूल बातें

\n\n

regexp पैकेज रेगुलर एक्सप्रेशन को कंपाइल करने के दो मुख्य तरीके प्रदान करता है:

\n\n
    \n
  • regexp.Compile(pattern string) (*Regexp, error) — पैटर्न को कंपाइल करता है और Regexp ऑब्जेक्ट या एरर लौटाता है, यदि पैटर्न गलत हो।
  • \n
  • regexp.MustCompile(pattern string) *Regexp — यह भी वही करता है, लेकिन एरर होने पर panic कॉल करता है। यह स्टैटिक पैटर्न के लिए उपयोगी है जो इनिशियलाइज़ेशन के समय परिभाषित होते हैं।
  • \n
\n\n

गारंटीड सही पैटर्न (जैसे कोड में लिखे गए) के लिए MustCompile का उपयोग करें, और यूज़र या बाहरी स्रोत से मिले डायनामिक पैटर्न के लिए Compile का उपयोग करें।

\n\n

उदाहरण 1: सबस्ट्रिंग खोजना (FindString)

\n\n

FindString फंक्शन पैटर्न से मेल खाने वाली पहली स्ट्रिंग लौटाता है। यदि कोई मेल नहीं मिलता है, तो यह खाली स्ट्रिंग लौटाता है।

\n\n
package main\n\nimport (\n    "fmt"\n    "regexp"\n)\n\nfunc main() {\n    text := "मेरा ईमेल: example@mail.com, बैकअप: test@example.org"\n    pattern := `[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}`\n\n    re := regexp.MustCompile(pattern)\n    match := re.FindString(text)\n\n    fmt.Println("मिला ईमेल:", match) // आउटपुट: example@mail.com\n}
\n\n

उदाहरण 2: सभी मैच खोजना (FindAllString)

\n\n

सभी मैच खोजने के लिए FindAllString का उपयोग करें। दूसरा आर्गुमेंट अधिकतम मैचों की संख्या है (-1 का मतलब सभी)।

\n\n
package main\n\nimport (\n    "fmt"\n    "regexp"\n)\n\nfunc main() {\n    text := "कोड: ABC-123, XYZ-456, QWE-789"\n    pattern := `[A-Z]{3}-\\d{3}`\n\n    re := regexp.MustCompile(pattern)\n    matches := re.FindAllString(text, -1)\n\n    fmt.Println("मिले कोड:", matches)\n    // आउटपुट: [ABC-123 XYZ-456 QWE-789]\n}
\n\n

उदाहरण 3: टेक्स्ट बदलना (ReplaceAllString)

\n\n

ReplaceAllString पैटर्न से मेल खाने वाले सभी हिस्सों को निर्दिष्ट स्ट्रिंग से बदल देता है। कैप्चर ग्रुप के लिए $1, $2 आदि सिंटैक्स का उपयोग करें।

\n\n
package main\n\nimport (\n    "fmt"\n    "regexp"\n)\n\nfunc main() {\n    text := "तारीख: 2024-01-15, और तारीख: 2023-12-31"\n    pattern := `(\\d{4})-(\\d{2})-(\\d{2})`\n\n    re := regexp.MustCompile(pattern)\n    // फॉर्मेट बदलें: YYYY-MM-DD से DD.MM.YYYY\n    result := re.ReplaceAllString(text, "$3.$2.$1")\n\n    fmt.Println("परिणाम:", result)\n    // आउटपुट: तारीख: 15.01.2024, और तारीख: 31.12.2023\n}
\n\n

उदाहरण 4: स्ट्रिंग का पैटर्न से मिलान जांचना (MatchString)

\n\n

MatchString फंक्शन true लौटाता है यदि स्ट्रिंग में पैटर्न से कम से कम एक मेल हो।

\n\n
package main\n\nimport (\n    "fmt"\n    "regexp"\n)\n\nfunc main() {\n    emails := []string{"user@example.com", "invalid-email", "admin@site.org"}\n    pattern := `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$`\n\n    re := regexp.MustCompile(pattern)\n    for _, email := range emails {\n        if re.MatchString(email) {\n            fmt.Printf("'%s' — सही ईमेल\\n", email)\n        } else {\n            fmt.Printf("'%s' — गलत ईमेल\\n", email)\n        }\n    }\n    // आउटपुट:\n    // 'user@example.com' — सही ईमेल\n    // 'invalid-email' — गलत ईमेल\n    // 'admin@site.org' — सही ईमेल\n}
\n\n

उदाहरण 5: कैप्चर ग्रुप से डेटा निकालना (FindStringSubmatch)

\n\n

FindStringSubmatch फंक्शन पूरे मैच और सभी कैप्चर ग्रुप को एक स्लाइस में लौटाता है।

\n\n
package main\n\nimport (\n    "fmt"\n    "regexp"\n)\n\nfunc main() {\n    text := "यूज़र: john_doe, आईडी: 12345"\n    pattern := `यूज़र: (\\w+), आईडी: (\\d+)`\n\n    re := regexp.MustCompile(pattern)\n    matches := re.FindStringSubmatch(text)\n\n    if len(matches) > 0 {\n        fmt.Println("पूरा मैच:", matches[0])\n        fmt.Println("यूज़रनेम:", matches[1])\n        fmt.Println("आईडी:", matches[2])\n    }\n    // आउटपुट:\n    // पूरा मैच: यूज़र: john_doe, आईडी: 12345\n    // यूज़रनेम: john_doe\n    // आईडी: 12345\n}
\n\n

निष्कर्ष

\n\n

Go में regexp पैकेज रेगुलर एक्सप्रेशन के साथ काम करने के लिए एक मजबूत और कुशल तरीका प्रदान करता है। हमने FindString, FindAllString, ReplaceAllString, MatchString और FindStringSubmatch जैसे मुख्य फंक्शन को उदाहरणों के साथ कवर किया है। इन फंक्शन का उपयोग करके आप टेक्स्ट प्रोसेसिंग, डेटा वैलिडेशन और पार्सिंग के कार्यों को आसानी से कर सकते हैं। अभ्यास करते रहें और अपने Go प्रोजेक्ट्स में रेगुलर एक्सप्रेशन का अधिकतम लाभ उठाएं!

ब्लॉग

पुस्तक अनुशंसाएँ