कुछ विशेष पात्रों को केवल तभी अनुमति दी जाती है जब वे एक भागने चरित्र से पहले होते हैं
मैं एक का निर्माण करना चाहते हैं (एक और अधिक OCaml तरह वाक्य रचना के साथ, लेक्स की शैली में) नियमित अभिव्यक्ति तार के एक वर्ग है, जहां के लिए 4 अक्षर [
, ]
, #
, '
की अनुमति है केवल अगर वे एक एस्केप वर्ण से पहले कर रहे हैं'
।
यहाँ कुछ मान्य उदाहरण दिए गए हैं:
'#Data
,abc'#Headers
,abc'#Totals'[efg
,123'#Totals']efg
,abc
,123
यहां कुछ गैर-वैध उदाहरण दिए गए हैं:
#Data
,abc#Headers
,abc#Totals[efg
,123#Totals]efg
,'#Totals[efg
आशा है कि परिभाषा स्पष्ट है। सबसे पहले, क्या कोई जानता है कि इस तरह की नियमित अभिव्यक्ति का निर्माण कैसे किया जाता है? दूसरा, क्या कोई जानता है कि इस तरह की एक नियमित अभिव्यक्ति का निर्माण कैसे किया जाता है (लेक्स की शैली में, एक अधिक ओमेक्कल-जैसे सिंटैक्स के साथ) जिसे ओसमलैलेक्स द्वारा स्वीकार किया जा सकता है?
जवाब
आप यह नहीं कहते कि स्वीकार किए गए तार कुछ उदाहरणों के साथ अन्य की तरह दिखते हैं। केवल संक्षिप्त रूप से, मान लें कि निम्न-स्थिति वाले अक्षरों और अंकों की अनुमति है, और 4 विशेष वर्णों को केवल तभी अनुमति दी जाती है, जब पूर्ववर्ती हों '
।
यह तब, 36 एक-वर्ण स्ट्रिंग्स और 4 दो-वर्ण स्ट्रिंग्स के सेट के क्लेने बंद द्वारा वर्णित है।
जो इस तरह दिखता है:
(['a' - 'z' '0' - '9'] | '\'' ['\'' '#' '[' ']'])*