ग्रूवी - नियमित अभिव्यक्तियाँ

एक नियमित अभिव्यक्ति एक ऐसा पैटर्न है जिसका उपयोग टेक्स्ट में सबस्ट्रिंग खोजने के लिए किया जाता है। ग्रूवी नियमित रूप से ~ "रेगेक्स" अभिव्यक्ति का उपयोग करते हुए मूल भावों का समर्थन करता है। उद्धरणों के भीतर संलग्न पाठ तुलना के लिए अभिव्यक्ति का प्रतिनिधित्व करता है।

उदाहरण के लिए हम एक नियमित अभिव्यक्ति ऑब्जेक्ट बना सकते हैं जैसा कि नीचे दिखाया गया है -

def regex = ~'Groovy'

जब ग्रूवी ऑपरेटर = ~ एक विधेय (बूलियन को लौटाने वाली अभिव्यक्ति) के रूप में प्रकट होता है if तथा whileकथन (अध्याय 8 देखें), बाईं ओर स्ट्रिंग ऑपरेंड को दाईं ओर नियमित अभिव्यक्ति ऑपरेंड के साथ मिलान किया गया है। इसलिए, निम्न में से प्रत्येक मूल्य को सही बताता है।

नियमित अभिव्यक्ति को परिभाषित करते समय, निम्नलिखित विशेष वर्णों का उपयोग किया जा सकता है -

  • दो विशेष स्थितीय वर्ण हैं जिनका उपयोग किसी पंक्ति की शुरुआत और अंत: कैरट (∧) और डॉलर चिह्न ($) को दर्शाने के लिए किया जाता है।

  • नियमित अभिव्यक्तियों में क्वांटिफायर भी शामिल हो सकते हैं। प्लस चिह्न (+) एक या अधिक बार दर्शाता है, जो अभिव्यक्ति के पूर्ववर्ती तत्व पर लागू होता है। तारांकन (*) का उपयोग शून्य या अधिक घटनाओं का प्रतिनिधित्व करने के लिए किया जाता है। प्रश्न चिह्न (?) शून्य या एक बार दर्शाता है।

  • मेटाचैकर {और} का उपयोग पूर्ववर्ती वर्ण के उदाहरणों की एक विशिष्ट संख्या से मेल खाने के लिए किया जाता है।

  • एक नियमित अभिव्यक्ति में, अवधि प्रतीक (।) किसी भी चरित्र का प्रतिनिधित्व कर सकता है। इसे वाइल्डकार्ड वर्ण के रूप में वर्णित किया गया है।

  • एक नियमित अभिव्यक्ति में चरित्र वर्ग शामिल हो सकते हैं। चरित्रों के एक सेट को मेटाचेकर्स [और] के रूप में [aeiou] में वर्णित पात्रों के एक सरल अनुक्रम के रूप में दिया जा सकता है। अक्षर या संख्या सीमाओं के लिए, आप [a-z] या [a-mA-M] के रूप में डैश विभाजक का उपयोग कर सकते हैं। वर्ण वर्ग के पूरक को वर्ग रैकेट के भीतर एक प्रमुख कार्यवाहक के रूप में दर्शाया गया है, जैसा कि []a-z] और निर्दिष्ट वर्णों के अलावा सभी वर्णों का प्रतिनिधित्व करता है। नियमित अभिव्यक्तियों के कुछ उदाहरण नीचे दिए गए हैं

'Groovy' =~ 'Groovy' 
'Groovy' =~ 'oo' 
'Groovy' ==~ 'Groovy' 
'Groovy' ==~ 'oo' 
'Groovy' =~ '∧G' 
‘Groovy' =~ 'G$' 
‘Groovy' =~ 'Gro*vy' 'Groovy' =~ 'Gro{2}vy'