यदि आप अभी भी रुचि रखते हैं तो cexp.el पर एक नज़र डालें।
यह सिर्फ एक हैक है लेकिन शायद आपके उद्देश्य की सेवा करता है।
आप cexp-search-forward
के साथ संयुक्त नियमित और संतुलित अभिव्यक्तियों की खोज कर सकते हैं। अंतर्निहित re-search-forward
नियमित अभिव्यक्तियों के लिए उपयोग किया जाता है और इसलिए इसके वाक्यविन्यास नियम लागू होते हैं। संतुलित अभिव्यक्तियों को अतिरिक्त वाक्यविन्यास तत्व \!(
और \!)
से मिलान किया जा सकता है।
सबसे गंभीर प्रतिबंध यह है कि समूहों में संतुलित अभिव्यक्तियां नहीं हो सकती हैं। तो \!(^{ \(\!(^{.*}$\!)\)+ }$\!)
जैसे निर्माण आंतरिक संतुलित अभिव्यक्ति वाले समूह की वजह से काम नहीं करता है।
फिर भी, एक उपयोगी उदाहरण की तरह
\\def\\[[:alpha:]]+\(#[0-9]\)*\!(^{.*}$\!)
तरह
\def\mdo#1{{\def\next{\relax}\def\tmp{#1}\ifx\next\tmp\else\def\next{#1\mdo}\expandafter}\next}
संयुक्त भाव के साथ
मिलान है टेक्स-परिभाषाएँ ऊपर cexp साथ cexp-खोज-आगे के माध्यम से खोज के लिए सीमा रिटर्न निम्नलिखित समूह:
- पूर्ण मिलान की शुरुआत और अंत
- संतुलित अभिव्यक्ति से पहले नियमित अभिव्यक्ति के लिए मैच की सीमा, यानी पहले नियमित अभिव्यक्ति में कब्जा समूह के
\def\mdo#1
- सीमा, यानी,
#1
- संतुलित अभिव्यक्ति की सीमा, यानी,
{{\def\next{\relax}\def\tmp{#1}\ifx\next\tmp\else\def\next{#1\mdo}\expandafter}\next}
हेक्टेयर! तो मजाकिया है। जैसे-जैसे मैं इस पर अधिक संकेतों की खोज करता हूं, Google में "emacs regex संतुलित" टाइप करना, मुझे यह प्रश्न * पहली हिट के रूप में मिलता है। हे हे। – Cheeso