2009-07-05 11 views
57

मुझे सीखने के उद्देश्यों के लिए, एक साइड-प्रोजेक्ट के रूप में, रेगेक्स इंजन बनाने में दिलचस्पी है।एक रेगेक्स इंजन का निर्माण - ऑनलाइन संसाधन?

मैं नियमित अभिव्यक्ति के मूल्यांकन के पीछे सिद्धांत पता है, और परिमित अवस्था की मशीनों आदि

क्या मैं में दिलचस्पी रखता हूँ कैसे एक regex इंजन सॉफ्टवेयर में कार्यान्वित किया जाता है के लिए पर्याप्त समझ है। तो मैं सोच रहा था कि क्या कोई ट्यूटोरियल या ऑनलाइन संसाधन था जो रेगेक्स इंजन के कार्यान्वयन को बताता है, रेगेक्स से एफएसएम तक अनुवाद करता है और इसी तरह। मैं ऐसी साइटों को नहीं चाहता जो सिर्फ इसके पीछे सिद्धांत बताए।

धन्यवाद।

उत्तर

40

Russ Cox में Implementing Regular Expressions के बारे में लेखों का एक अच्छा संग्रह है, विशेष रूप से उनके लेख Regular Expression Matching Can Be Simple And Fast पढ़ने योग्य है।

+1

साइट कुछ दिनों से नीचे लगती है। [यहां] (http://webcache.googleusercontent.com/search?q=cache:XQrcPV-4kngJ:swtch.com/~rsc/regexp/regexp1.html+) Google द्वारा कैश किए गए आलेख का एक लिंक। –

+0

रसेल कॉक्स के रेगेक्स पेज बहुत अच्छे हैं। जब मैं ओपी के समान कारणों से संसाधनों की तलाश में था, तो मुझे भी ये मिला। मैं इन पृष्ठों को सी के लिए रेगेक्स लाइब्रेरी बनाने के लिए ढीली मार्गदर्शिका के रूप में उपयोग कर रहा हूं, और [इस ब्लॉग] (http://regexvm.blogspot.ie) का उपयोग करके दस्तावेज़ के साथ उपयोग कर रहा हूं। मैं इस विषय पर कोई अधिकार नहीं हूं लेकिन दूसरों को मेरे संघर्षों को देखने से फायदा हो सकता है। –

12
सुंदर कोड ( Amazon, online draft) ब्रायन Kernighan रोब पाईक सुरुचिपूर्ण, बहुत छोटे regex मिलान बारे में बात करती के प्रथम अध्याय में

। यह वास्तव में सरल है, लेकिन केर्निगन इसे बढ़ाने के लिए सात अभ्यास देता है, जो आपके लिए एक अच्छा परिचय हो सकता है।

14

मुझे लगता है कि मार्क-जेसन डोमिनस द्वारा आलेख How Regexes Work उत्कृष्ट है। यह गैर-प्रोग्रामर पर लक्षित है, लेकिन यह एक बहुत ही एल्गोरिदमिक तरीके से लिखा गया है और इसलिए इसका उपयोग ऐसे इंजन को लागू करने के लिए किया जा सकता है, खासकर यदि आपके पास संकलन के साथ कोई अनुभव है। मैंने खुद ऐसा किया है।

लेख में अधिक उन्नत टिप्स और चाल भी शामिल हैं, और इसमें इंजन सीमाओं के बारे में कुछ जानकारी है।

4

मुझे पार्टी के लिए देर हो चुकी है, लेकिन मुझे this WSU course assignment उच्च स्तर पर रेगेक्स इंजन इम्प्लेमेनेटेशन पेश करने में सबसे उपयोगी पाया गया। मुझे सी नहीं पता, इसलिए यह अच्छा था कि सामग्री को भाषा-अज्ञेय प्रारूप में प्रस्तुत किया गया था। महत्वपूर्ण बात, यह एक महान काम समझा करता है:

  • पोस्टफ़िक्स अंकन
  • क्यों उपयोग करने के लिए क्या NFA टुकड़े के ढेर स्यूडोकोड में
  • पोस्टफ़िक्स करने वाली NFA एल्गोरिथ्म है
  • NFA डेटा संरचना

इसके अतिरिक्त, मुझे Pace professor's articlere2post विधि WSU और कॉक्स द्वारा निर्दिष्ट विधि को लागू करने में उपयोगी पाया गया।

मैं पहले डब्लूएसयू लेख पढ़ने और फिर गॉस के लिए रसेल कॉक्स के लेख को पढ़ने की सिफारिश करता हूं।

1

रॉबर्ट सेजविक द्वारा Algorithms से पांचवें अध्याय विषय के लिए एक बहुत अच्छा परिचय है। यह बताता है कि एनएफए क्या है और एक एनएफए को रेगेक्स से कैसे बनाया जा सकता है। उदाहरणों में दृश्य हैं और बहुत स्पष्ट हैं। इसमें एक साधारण रेगेक्स मैचर के लिए कोड भी है। और अधिक regex सुविधाओं को लागू करने के लिए कुछ अभ्यास हैं।

0

जर्मन पाठकों के लिए अध्याय तीन "पैटर्न-मिलान-एल्गोरिथमेन फर ईनफैच स्ट्रिंग्स" Algorithmen auf Sequenzen "दिलचस्प हो सकता है। लेखक प्रोफेसर डॉ। स्वेन रहमान, लेहरस्टहल इलेवन, फकल्टैट फर इंफॉर्मैटिक, टीयू डॉर्टमुंड हैं। सभी एल्गोरिदम में पाइथन उदाहरण हैं।

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