Python Programming

Python के re.sub() का उपयोग करके रेगेक्स वाइल्डकार्ड्स में महारत हासिल करना

Spread the love

नियमित अभिव्यक्तियाँ (रेगेक्स या रेगेक्सप) स्ट्रिंग्स में पैटर्न मिलान के लिए शक्तिशाली उपकरण हैं। पाइथन का re मॉड्यूल रेगेक्स ऑपरेशंस के लिए मजबूत कार्यक्षमता प्रदान करता है, जिसमें वाइल्डकार्ड्स एक महत्वपूर्ण भूमिका निभाते हैं। यह लेख विभिन्न स्ट्रिंग मैनिपुलेशन कार्यों के लिए re.sub() फ़ंक्शन के साथ वाइल्डकार्ड्स का प्रभावी ढंग से उपयोग कैसे करें, इस पर चर्चा करता है।

विषय-सूची

वाइल्डकार्ड्स के साथ बेसिक रेगेक्स प्रतिस्थापन

re.sub() फ़ंक्शन रेगेक्स प्रतिस्थापन के लिए मौलिक है। इसका सिंटैक्स re.sub(pattern, replacement, string, count=0, flags=0) है। pattern एक नियमित अभिव्यक्ति है, replacement प्रतिस्थापित करने वाली स्ट्रिंग है, string इनपुट है, count प्रतिस्थापन को सीमित करता है, और flags मिलान व्यवहार को संशोधित करता है। वाइल्डकार्ड्स pattern की लचीलेपन को नाटकीय रूप से बढ़ाते हैं।

आइए किसी स्ट्रिंग में सभी स्वरों को “X” से बदलें:


import re

text = "Hello, World!"
replaced_text = re.sub(r"[aeiou]", "X", text, flags=re.IGNORECASE)
print(f"Original: {text}")
print(f"Replaced: {replaced_text}")

[aeiou] एक वाइल्डकार्ड कैरेक्टर सेट है जो किसी भी स्वर (re.IGNORECASE के कारण केस-संवेदनशील नहीं) से मेल खाता है।

उन्नत वाइल्डकार्ड उपयोग और मात्रा निर्धारक

re.sub() जटिल वाइल्डकार्ड्स का समर्थन करता है। आइए एक या अधिक अंकों के अनुक्रमों को “NUMBER” से बदलें:


import re

text = "My phone number is 123-456-7890 and my zip code is 90210."
replaced_text = re.sub(r"d+", "NUMBER", text)
print(f"Original: {text}")
print(f"Replaced: {replaced_text}")

d+ एक या अधिक अंकों (d एक अंक से मेल खाता है, + एक या अधिक पुनरावृत्तियों को दर्शाता है) से मेल खाता है।

यहाँ एक तालिका दी गई है जो प्रमुख वाइल्डकार्ड्स को सारांशित करती है:

वाइल्डकार्ड वर्णन
. न्यूलाइन को छोड़कर किसी भी वर्ण से मेल खाता है।
* पूर्ववर्ती तत्व की शून्य या अधिक घटनाओं से मेल खाता है।
+ पूर्ववर्ती तत्व की एक या अधिक घटनाओं से मेल खाता है।
? पूर्ववर्ती तत्व की शून्य या एक घटना से मेल खाता है।
[] एक वर्ण सेट को परिभाषित करता है (जैसे, [abc])।
[^] एक निषेधित वर्ण सेट को परिभाषित करता है (जैसे, [^abc])।
() एक कैप्चरिंग समूह बनाता है।
विशेष वर्णों को एस्केप करता है (जैसे, . एक शाब्दिक बिंदु से मेल खाता है)।

जटिल पैटर्न के लिए वाइल्डकार्ड्स का संयोजन

वाइल्डकार्ड्स के संयोजन से शक्तिशाली पैटर्न बनते हैं। आइए “a” से शुरू होने वाले शब्दों के बाद किसी भी वर्ण को बदलें:


import re

text = "A apple a day keeps the doctor away."
replaced_text = re.sub(r"aw*", "WORD", text, flags=re.IGNORECASE)
print(f"Original: {text}")
print(f"Replaced: {replaced_text}")

aw* “a” के बाद शून्य या अधिक शब्द वर्णों (w) से मेल खाता है।

वास्तविक दुनिया के उदाहरण: ईमेल और फ़ोन नंबर निष्कर्षण

re.sub() जटिल पैटर्न को संभालने में उत्कृष्टता प्राप्त करता है। आइए ईमेल पतों को “EMAIL” से बदलें:


import re

text = "Contact us at [email protected] or [email protected]."
replaced_text = re.sub(r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}", "EMAIL", text)
print(f"Original: {text}")
print(f"Replaced: {replaced_text}")

यह रेगेक्स एक सामान्य ईमेल प्रारूप से मेल खाता है।

निष्कर्ष

re.sub() फ़ंक्शन, रेगेक्स वाइल्डकार्ड्स के साथ संयुक्त, पाइथन में स्ट्रिंग मैनिपुलेशन के लिए एक लचीला और कुशल तरीका प्रदान करता है। इन तकनीकों में महारत हासिल करना टेक्स्ट प्रोसेसिंग और डेटा सफाई कार्यों के लिए मूल्यवान है। अनपेक्षित प्रतिस्थापन से बचने के लिए सावधानीपूर्वक रेगेक्स निर्माण महत्वपूर्ण है। प्रभावी स्ट्रिंग हेरफेर के लिए प्रयोग और वाइल्डकार्ड बारीकियों को समझना महत्वपूर्ण है।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *