अभिव्यक्ति है:मैं इस बैकस-नौर फॉर्म अभिव्यक्ति को Regex (.Net) में कैसे बदल सकता हूं?
N | (1 { A | B | C | D | E1 | E2 | E3 })
वर्णनकर्ता "एन" या बिना दोहराव के एक या एक से सूचीबद्ध वर्णनकर्ता के और अधिक मतलब।
सबसे अच्छा मुझे मिल गया है:
@"^(N|(A|B|C|D|E1|E2|E3){1,})$"
लेकिन उस पुनरावृत्ति को रोकने नहीं करता है।
@"^(N|(A{0,1}B{0,1}...)$"
जो पुनरावृत्ति को रोकता है लेकिन उसके बाद तत्वों के लिए एक विशिष्ट क्रम की आवश्यकता होती है, जो वास्तव में ठीक नहीं है।
कोई विचार?
(मैं वास्तव में लगता है कि BNF अभिव्यक्ति ही पुनरावृत्ति की अनुमति नहीं देता नहीं हूँ, लेकिन है कि मैं क्या जरूरत है।)
http://kore-nordmann.de/blog/do_NOT_parse_using_regexp.html शब्दों को पहचानने के लिए नियमित अभिव्यक्तियों का उपयोग करें, संरचनाओं पर नहीं। –
मुझे लगता है कि समझ में आता है। लेकिन मैं इस संरचना को पहचानने के लिए क्या उपयोग करूंगा? @ डेविडब्रैबेंट इसका उपयोग उल्लिखित फॉर्म के इनपुट को प्रमाणित करने के लिए किया जाएगा। – Daniel
या पीसीआरई विधि है जिसका आप सुझाव दे रहे हैं? – Daniel