2010-11-22 9 views
13

नियमित अभिव्यक्ति में:

  • ^ और \A के बीच क्या अंतर है?
  • $ और \Z के बीच क्या अंतर है?
+0

रेगेक्स की कौन सी भाषा का स्वाद? PHP में –

+0

। 5.3 से PHP केवल पीसीआरई (पर्ल संगत रेग एक्स) का उपयोग करता है और अन्य एनर्जी को पीसीआरई के पक्ष में बहिष्कृत कर दिया गया है। तो, मूल रूप से PERL शैली –

+0

संबंधित: http://stackoverflow.com/questions/4020792/regular-expressions-difference-between-and-a –

उत्तर

10

सिंगल-लाइन मोड में, $ स्ट्रिंग के अंत में या स्ट्रिंग के अंत में नई लाइन से पहले मेल खाता है। स्ट्रिंग में प्रत्येक नई लाइन से पहले मल्टीलाइन मोड $ मैचों में। \Z हमेशा लाइन मोड के बावजूद केवल स्ट्रिंग के अंत से मेल खाता है। ^ बनाम \A के साथ ही।

+2

क्षमा करें लेकिन यह बिल्कुल सही नहीं है। '\ Z' स्ट्रिंग के अंत से पहले ** या ** स्ट्रिंग के अंत से पहले होता है यदि अंतिम char' \ n' है। पूरी तरह से, गैर-ओह-इन-केस संस्करण के लिए, आप '\ z' (थोड़ा ज़ेड नहीं ज़ेड ज़ेड) चाहते हैं, जो केवल तभी मिलान करने की गारंटी है जब कोई वर्ण शेष न हो। कुछ रेगेक्स भाषाओं में, बीटीडब्ल्यू, एक नई लाइन के रूप में क्या मायने रखता है लचीला हो सकता है; यदि आप भाग्यशाली हैं तो यह किसी भी लाइनबैक अनुक्रम के लिए '(?: (?> \ r \ n) | \ v) 'से मेल खाएगा, जहां' \ v' यूनिकोड '\ p {Vertical_Space}' संपत्ति है। – tchrist

+0

एक और बात: सिंगल-लाइन मोड * नहीं * मल्टीलाइन मोड के विपरीत है; वे पूरी तरह से अलग हैं। मल्टीलाइन मोड आपके द्वारा वर्णित '^' और '$' के व्यवहार को बदलता है, जबकि सिंगल-लाइन मोड लाइन-सेपरेटर वर्णों से मेल खाने के लिए '.' को अनुमति देता है। –

+1

और tchrist की टिप्पणी के लिए एक नोट: पायथन 're' में, \ Z' पर्ल/.NET/Java/PCRE में' \ z' के बराबर है। –

3

जब वे एकाधिक लाइनों के साथ स्ट्रिंग मिलान की बात करते हैं तो वे अलग होते हैं।

^प्रत्येक लाइन ब्रेक के बाद स्ट्रिंग और की शुरुआत में मिलान कर सकते हैं। \ स्ट्रिंग

$ प्रत्येक लाइन ब्रेक से पहले स्ट्रिंग और के अंत में मिलान कर सकते हैं। \ Z केवल स्ट्रिंग के अंत में मेल खाता है।

7

perldoc perlre देखें।

\ एक और \ जेड, सिवाय इसके कि वे कई बार जब/मी संशोधक प्रयोग किया जाता है से मेल नहीं है, जबकि "^" और "$ जैसे"^"और " $ "कर रहे हैं " पर प्रत्येक आंतरिक रेखा सीमा से मेल खाएगा। से मिलान करने के लिए स्ट्रिंग का वास्तविक अंत और एक वैकल्पिक पीछे की नईलाइन को अनदेखा करें, \ z का उपयोग करें।

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