पायथन में नियमित अभिव्यक्तियों के दायरे में, रहस्यमय 'आर' उपसर्ग अक्सर इसकी आवश्यकता के बारे में सवाल उठाता है . इस विषय पर प्रकाश डालने के लिए, आइए एक पेचीदा परिदृश्य पर गौर करें:
द क्यूरियस केस ऑफ़ द मिसिंग 'आर'
उदाहरण 1 ने एक पेचीदा अवलोकन प्रस्तुत किया:
import re
print(re.sub('\s ', ' ', 'hello there there'))
'r' उपसर्ग को हटाने के बावजूद, इस कोड ने एक ही स्थान के साथ कई व्हाइटस्पेस वर्णों को सफलतापूर्वक प्रतिस्थापित कर दिया। क्या एस्केप अनुक्रमों का उपयोग करते समय 'आर' उपसर्ग अनिवार्य नहीं होना चाहिए? भागने के क्रम का. नियमित अभिव्यक्तियों में, कुछ वर्ण (जैसे कि रिक्त स्थान के लिए \s) विशेष वर्णों को दर्शाने के लिए एस्केप अनुक्रम के रूप में कार्य करते हैं। हालाँकि, एस्केप अनुक्रम केवल तभी सक्रिय होते हैं जब वे वैध एस्केप अनुक्रम संयोजनों का प्रतिनिधित्व करते हैं। 'एस' द्वारा)। यह व्यवहार पायथन स्ट्रिंग्स के लिए सामान्य नियम के साथ संरेखित होता है, जहां एस्केप अनुक्रमों की व्याख्या केवल तभी की जाती है जब वे मान्यता प्राप्त एस्केप अनुक्रम संयोजन हों।
'r' उपसर्ग का प्रभाव
'आर' उपसर्ग एक अलग व्यवहार उत्पन्न करता है। यह प्रभावी ढंग से एस्केप अनुक्रमों की व्याख्या को दबा देता है, सभी पात्रों का शाब्दिक रूप से इलाज करता है, जिसमें एस्केप कैरेक्टर भी शामिल हैं:
import re print(re.sub(r'(\b\w )(\s \1\b) ', r'\1', 'hello there there'))उदाहरण 2 में, 'r ' उपसर्ग एस्केप वर्णों को शाब्दिक रूप से व्याख्या करने के लिए बाध्य करता है, जिससे रेगेक्स बार-बार शब्द प्रतिस्थापन को सही ढंग से निष्पादित करने में सक्षम होता है।
संगति बनाम। अपवाद
import re
print(re.sub(r'(\b\w )(\s \1\b) ', r'\1', 'hello there there'))
निष्कर्षपायथन नियमित में 'आर' उपसर्ग अभिव्यक्तियाँ भागने के अनुक्रमों का शाब्दिक रूप से इलाज करके सुसंगत व्यवहार सुनिश्चित करती हैं। हालांकि आमतौर पर स्पष्टता के लिए और अप्रत्याशित परिणामों से बचने के लिए 'आर' उपसर्ग का उपयोग करने की सलाह दी जाती है, लेकिन ऐसे परिदृश्य भी हो सकते हैं जहां इसे हटाने से वांछित परिणाम मिल सकते हैं। हालाँकि, सूचित निर्णय लेने के लिए पलायन अनुक्रमों के अंतर्निहित व्यवहार को समझना महत्वपूर्ण है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3