"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं नियमित अभिव्यक्तियों में अभिकथनों के पीछे परिवर्तनीय-लंबाई लुक कैसे प्राप्त कर सकता हूँ?

मैं नियमित अभिव्यक्तियों में अभिकथनों के पीछे परिवर्तनीय-लंबाई लुक कैसे प्राप्त कर सकता हूँ?

2024-11-07 को प्रकाशित
ब्राउज़ करें:375

How Can I Achieve Variable-Length Lookbehind Assertions in Regular Expressions?

रेगुलर एक्सप्रेशंस में वैरिएबल-लेंथ लुकबिहाइंड एसेर्शन

रेगुलर एक्सप्रेशन शक्तिशाली पैटर्न मिलान उपकरण हैं, लेकिन जब वेरिएबल की बात आती है तो उन्हें सीमित किया जा सकता है -लंबाई दावे के पीछे दिखती है। लुकबिहाइंड अभिकथन आपको मैच से पहले की स्थिति के आधार पर एक स्ट्रिंग से मिलान करने की अनुमति देता है। हालाँकि, पारंपरिक नियमित अभिव्यक्तियाँ केवल निश्चित-लंबाई वाले लुकबिहाइंड दावों का समर्थन करती हैं। कई विकल्प हैं:

पायथन का रेगेक्स मॉड्यूल:

पायथन में रेगेक्स मॉड्यूल (?
    \K नियंत्रण प्रतीक:
  1. आधुनिक नियमित अभिव्यक्तियों में, \K प्रतीक आपको मिलान से वर्णों को हटाने की अनुमति देता है \K घटना से पहले। यह लुकबिहाइंड दावे के समान है, लेकिन इसे एक ही अभिव्यक्ति में दो बार उपयोग नहीं किया जा सकता है और छोड़े गए वर्ण हमेशा पंक्ति की शुरुआत तक विस्तारित होते हैं।
  2. \K के साथ प्रतिस्थापन
  3. मिलानों को प्रतिस्थापित करते समय, आप प्रतिस्थापन से विशिष्ट वर्णों को बाहर करने के लिए \K का उपयोग कर सकते हैं। उदाहरण के लिए, निम्नलिखित केवल स्ट्रिंग के "बार" भाग को प्रतिस्थापित करेगा:

s/(foo.*)\Kbar/new_text/

नकारात्मक लुकबिहाइंड \K[ के साथ &&&]

^(?:(?!STRING).)* निर्माण का उपयोग करके नकारात्मक लुकबैक प्राप्त किया जा सकता है। यह प्रभावी रूप से निर्दिष्ट स्ट्रिंग वाले किसी भी सबस्ट्रिंग से मेल किए बिना संपूर्ण स्ट्रिंग से मेल खाता है।
s/(foo.*)\Kbar/new_text/

उन्नत नियमित अभिव्यक्ति कार्यान्वयन

कुछ भाषाओं ने नियमित अभिव्यक्ति कार्यान्वयन को बढ़ाया है जो चर-लंबाई का समर्थन करते हैं दावों के पीछे देखें:

पायथन का रेगेक्स मॉड्यूल

पर्ल के रेगेक्स इंजन के कुछ विस्तारित संस्करण
  • हालाँकि , यह ध्यान रखना महत्वपूर्ण है कि सभी आधुनिक नियमित अभिव्यक्ति कार्यान्वयन वैरिएबल-लंबाई लुकबैक दावे का समर्थन नहीं करते हैं। अपनी विशिष्ट भाषा और कार्यान्वयन के लिए दस्तावेज़ीकरण से परामर्श लेना हमेशा उचित होता है।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3