2011-07-10 15 views
6

नियमित अभिव्यक्ति को देखते हुए, मैं तारों के सेट का उत्पादन करना चाहता हूं कि नियमित अभिव्यक्ति मेल खाती है। यह ध्यान रखना महत्वपूर्ण है कि यह सेट अनंत नहीं होगा क्योंकि प्रत्येक स्ट्रिंग के लिए अधिकतम लंबाई होगी। क्या ऐसा करने के लिए जगह पर कोई प्रसिद्ध एल्गोरिदम हैं? क्या इस समस्या में अंतर्दृष्टि प्राप्त करने के लिए मैं कोई शोध पत्र पढ़ सकता हूं?नियमित अभिव्यक्ति के सभी संभावित मैचों का निर्माण

धन्यवाद।

पेज। सैद्धांतिक सीएस स्टैक एक्सचेंज में इस प्रकार का सवाल अधिक उपयुक्त होगा?

+0

ठीक है, हम सैद्धांतिक सीएस को स्थानांतरित करने के लिए मतदान कर सकते हैं नहीं है, तो आप अपने प्रश्न ध्वज कर सकते हैं और एक आधुनिक पूछना। – BoltClock

+0

सभी संभावित तार राज्य मशीन के माध्यम से सभी संभावित पथों से मेल खाते हैं जो एक मैच में समाप्त होते हैं। लेकिन यह पूछने की तरह है, मुझे सीमित लंबाई के सभी संभावित कार्यक्रम दें जो मेरे कार्यक्रम के आउटपुट से मेल खाते हैं। – gtrak

+0

जब आप प्रत्येक स्ट्रिंग के लिए "अधिकतम लंबाई" कहते हैं तो आपका मतलब है कि आपके रेगेक्स में कोई + या * ऑपरेटर नहीं है? –

उत्तर

4

पर्ल की दुनिया में हमने CPAN पर एक मॉड्यूल है कि सिर्फ इतना है कि करता है ->Regexp::Genex

+0

धन्यवाद। मैं बस आगे बढ़ सकता हूं और उस मॉड्यूल का उपयोग कर सकता हूं। क्या आप ऐसे संसाधनों से अवगत हैं जो चर्चा करते हैं कि इस तरह के मॉड्यूल को कैसे कार्यान्वित किया जाए? मैं उत्सुक था कि इसे सुंदर ढंग से/कुशलतापूर्वक कैसे कार्यान्वित किया जा सकता है। – Sam

+0

बस इसके स्रोत कोड की जांच करें। सहजता से, एक रेगेक्स एक automaton है, तो एक ग्राफ। स्ट्रिंग से मेल खाने वाले सभी तारों का अर्थ यह होगा कि "प्रारंभ" नोड शुरू करने और automaton के "स्वीकृति" नोड में समाप्त होने वाले सभी पथों को ढूंढना, इसलिए इसका मतलब ग्राफ के अंदर पथों की गणना होगी। – average

संबंधित मुद्दे