Python:
एक पैटर्न से मेल करने वाले वर्णों को हटाना
कैसे करें:
import re
# उदाहरण स्ट्रिंग
text = "Hello, World! 1234"
# सभी अंकों को हटाएं
no_digits = re.sub(r'\d', '', text)
print(no_digits) # आउटपुट: "Hello, World! "
# विराम चिह्न हटाएं
no_punctuation = re.sub(r'[^\w\s]', '', text)
print(no_punctuation) # आउटपुट: "Hello World 1234"
# स्वर वर्ण हटाएं
no_vowels = re.sub(r'[aeiouAEIOU]', '', text)
print(no_vowels) # आउटपुट: "Hll, Wrld! 1234"
मेरा कस्टम फंक्शन
मैं यह कार्य पर्याप्त बार करता हूं जिसके लिए मैंने इस सरल delete()
फंक्शन को पुनर्गठित किया है। यह doctests का एक अच्छा दर्शन भी है:
def delete(string: str, regex: str) -> str:
"""
>>> delete("Hello, world!", "l")
'Heo, word!'
>>> delete("Hello, world!", "[a-z]")
'H, !'
"""
return re.sub(regex, "", string)
गहराई से जानकारी
किसी पैटर्न से मेल खाने वाले अक्षरों को पाठ में से हटाने का अभ्यास कंप्यूटर विज्ञान में गहराई से निहित है, जो sed
और grep
जैसे प्रारंभिक Unix उपकरणों तक पहुँचता है। Python में, re
मॉड्यूल यह क्षमता प्रदान करता है, नियमित अभिव्यक्तियों का उपयोग करके— एक शक्तिशाली और बहुमुखी पाठ संसाधन उपकरण।
re
मॉड्यूल के विकल्पों में शामिल हैं:
- साधारण मामलों के लिए
replace()
जैसी स्ट्रिंग विधियाँ। - जटिल पैटर्न और बेहतर Unicode समर्थन के लिए
regex
जैसे तृतीय-पक्ष पुस्तकालय।
आंतरिक रूप से, जब आप re.sub()
का उपयोग करते हैं, तो Python व्याख्यानी बाइटकोड के एक सिरीज़ में पैटर्न को संकलित करता है, जिसे एक राज्य मशीन द्वारा संसाधित किया जाता है जो प्रवेश पाठ पर सीधे पैटर्न-मिलान प्रदर्शित करता है। बड़ी स्ट्रिंग्स या जटिल पैटर्न के लिए यह संचालन संसाधन-गहन हो सकता है, इसलिए बड़े डेटा प्रसंस्करण के लिए प्रदर्शन पर विचार करना महत्वपूर्ण है।
देखें
- Python
re
मॉड्यूल दस्तावेज़: Python में नियमित अभिव्यक्तियों के लिए आधिकारिक दस्तावेज़। - Regular-Expressions.info: नियमित अभिव्यक्तियों के लिए एक व्यापक मार्गदर्शिका।
- Real Python ट्यूटोरियल ऑन रेगेक्स: Python में नियमित अभिव्यक्तियों के वास्तविक दुनिया के अनुप्रयोग।