2016-03-07 11 views
5

मुझे Perl regular expressions के लिए प्राथमिकता नियमों के लिए आधिकारिक संदर्भ नहीं मिल सकता है। मुझे क्या मिल सकता है केवल Know the precedence of regular expression operators है। हालांकि, यह perldoc द्वारा दिया गया आधिकारिक संदर्भ नहीं है।पर्ल नियमित अभिव्यक्तियों के लिए प्राथमिकता नियम क्या हैं?

+0

perlre एक वर्ग में शामिल * संस्करण 8 रेगुलर एक्सप्रेशन * जो तंत्र मिलान regex पैटर्न के एक मौखिक विवरण प्रदान करता है। – laune

+0

@laune, मैंने अभी _Version 8 नियमित अभिव्यक्तियों को ब्राउज़ किया है। लेकिन मुझे कुछ भी नहीं मिला जो प्राथमिकता के लिए प्रासंगिक है। क्या आप कृपया बता सकते हैं कि यह प्राथमिकता के लिए प्रासंगिक कैसे है? –

+2

मुझे लगता है कि यह पाठ समस्या को स्पष्ट करता है, लेकिन आपको लाइनों के बीच (थोड़ा) पढ़ना पड़ सकता है। - वैसे भी, किसी भी रेगेक्स सिस्टम (प्रारंभिक) * निक्स यूटिलिटीज, अजीब, पर्ल 4, पर्ल 5, जावा, एक्सएमएल स्कीमा और अन्य कई के रेगेक्स सिस्टम के भीतर कोष्ठक, क्वांटिफायर, जुटाव और विकल्प की प्राथमिकता के बारे में कोई संदेह नहीं रहा है। - आपको क्या परेशान कर रहा है?? – laune

उत्तर

4

नियमित अभिव्यक्तियों में केवल दो बाइनरी ऑपरेटरों हैं, जिनमें से एक प्रतीक के प्रतिनिधित्व के बजाय अंतर्निहित है। नियमित अभिव्यक्तियों में कई यूनरी ऑपरेटरों भी होते हैं, लेकिन उनकी प्राथमिकता उनके संचालन पर प्रतिबंधों के कारण मूक होती है। यह वास्तव में अजीबता के बारे में बात करता है।

यह जानकारी आप निम्नलिखित बयानों का उपयोग कर की तलाश संदेश सरल है:

  • Quantifiers एक परमाणु को संशोधित।
  • क्वांटिफायर संशोधक एक एकल क्वांटिफायर संशोधित करते हैं।
  • विकल्प उन अभिभावकों को छोड़कर अनबाउंड किया जाता है, जिनमें वे रहते हैं।

उपर्युक्त जानकारी perlretut में एक तरफ या किसी अन्य को व्यक्त की जाती है।


उस ने कहा, एक प्राथमिकता तालिका बनाना संभव है। चूंकि उपर्युक्त विवरण आपको आवश्यक सभी जानकारी बताते हैं, इसलिए उनसे प्राथमिकता तालिका बनाना संभव है। यह पीछा कर रहा है:

  1. परमाणुओं (जैसे a, \n, \^, ., ^, \w, [...], \1, (...))
  2. पोस्टफिक्स एकल ऑपरेटरों (परिमाणकों और परिमाणक संशोधक)
  3. अंतर्निहित "पीछा किया द्वारा "ऑपरेटर (संभवतः मात्राबद्ध) परमाणुओं के बीच
  4. विकल्प

यह उस पृष्ठ के चार्ट से मेल खाता है जिस पर आपने लिंक किया था।


मस्ती के लिए, निम्नलिखित BNF होगा:

pattern    ::= <alternation> 

alternation   ::= <sequence> <alternation2> 
alternation2   ::= "|" <alternation> | "" 

sequence    ::= <quantified_atom> <sequence> | "" 

quantified_atom  ::= <atom> <quantified_atom2> 
quantified_atom2  ::= <modified_quantifier> | "" 
modified_quantifier ::= <quantifier> <modified_quantifier2> 
modified_quantifier2 ::= <quantifier_modifier> | "" 
+0

आपको यह नहीं करना था, यह पहले से ही बहुत अच्छा था :) – Aaron

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

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