लुकराउंड वर्णों का उपभोग नहीं करते हैं!
यहाँ कदम माध्यम से एक कदम यह देखने के लिए है (सबसे अच्छा नहीं हो सकता है, लेकिन यह है कि मैं इसे कैसे वैसे भी व्याख्या है):
प्रथम चरित्र L
है, regex इंजन \w+
के साथ तुलना और इससे सहमत हैं कि यह एक है मैच। T
के लिए भी होता है, फिर E
।
अंतरिक्ष में, रेगेक्स इंजन नियमित अभिव्यक्ति में एक जगह देखता है, यह भी ठीक है।
अगला अप खोलने वाला माता पिता है, लेकिन रेगेक्स क्या देखता है? याद रखें कि लुकराउंड वर्णों का उपभोग नहीं करते हैं, ताकि (?<=\()
में वास्तव में उपभोग नहीं किया जा रहा है और \(
\w+
मैचों से मेल नहीं खाता है!
आप वास्तव में उन पात्रों का उपभोग करने वाले रेगेक्स के बारे में सोच सकते हैं: \w+ \w+
, लेकिन दूसरे \w+
पर एक शर्त के साथ, यह माता-पिता के बीच पाया जाना चाहिए। स्थिति संतुष्ट हो सकती है, लेकिन अभिव्यक्ति स्वयं किसी भी कोष्ठक से मेल नहीं खाती है!
यह मेल बनाने के लिए, आप कोष्ठक जोड़ना चाहिए:
\w+ \((?<=\()\w+(?=\))\)
देखने और अंतरिक्ष मिलान के बाद, regex इंजन (
देखता है, जो प्रदान की अभिव्यक्ति के साथ सहमत हैं, यह आगे बढ़ता है।
इंजन तब T
देखता है। सबसे पहले, यह अगले चरित्र, \w+
से मेल खाता है? हाँ, दूसरा, क्या इससे पहले एक उद्घाटन माता पिता है? हाँ।
आगे बढ़ने से पहले, यह सकारात्मक दिखता है। क्या कोई आगे बढ़ने वाला माता पिता अभी आगे है? नहीं, e
है, लेकिन \w+
अभी भी संतुष्ट हो सकता है, इसलिए यह e
से दूसरे \w
के साथ मेल खाता है। यह t
तक इस तरह से चला जाता है। क्या t
के बाद कोई बंद माता पिता है? हां, इस प्रकार अगली जांच पर आगे बढ़ें।
यह एक बंद करने वाले माता-पिता से मुकाबला करता है, जो अभिव्यक्ति में समापन माता-पिता से मेल खाता है (ध्यान दें कि शाब्दिक समापन माता-पिता को यहां छोड़ दिया जा सकता है, और आप इसके बजाय LTE (Test
से मिलान करेंगे)।
लेकिन यह सब के साथ, यह हो उतना ही अच्छा lookarounds गिरा दिया है करने के लिए हो सकता है:
\w+ \(\w+\)
क्योंकि वे इंजन पर अधिक तनाव जोड़ सकते हैं और भले ही यह है कि छोटे पैमाने पर दिखाई नहीं है, यह हो सकता है एक बड़ी स्ट्रिंग पर महत्वपूर्ण है।
उम्मीद है कि यह मदद करता है, भले ही यह थोड़ा सा हो!
http://gskinner.com/RegExr/ का उपयोग करें: स्पष्ट स्पष्टीकरण देखने के लिए अपने माउस को अपने रेगेक्स कोड पर घुमाएं। यह भी देखें http://regex101.com/r/zE8qZ8 – hexicle
मैंने पहली बार परीक्षण करने के लिए regexr का उपयोग किया। अभी भी मुझे यह स्पष्ट नहीं करता है कि यह – hamobi