Regex और टेक्स्ट
Regex lookahead और lookbehind समझें
Lookaround शून्य-चौड़ाई assertion है: वह किसी स्थान के पहले या बाद का संदर्भ जाँचता है, लेकिन उसे उपभोग किए गए मिलान में नहीं जोड़ता।
प्रकाशित
Lookaround क्या है
Assertion वर्तमान स्थान पर सफल या विफल होता है, लेकिन उसका स्वयं का टेक्स्ट मिलान में उपभोग नहीं होता।
सकारात्मक lookahead (?=...)
यह अंकों से तभी मेल खाता है जब बाद में USD हो।
\d+(?= USD)नकारात्मक lookahead (?!...)
यह foo से तभी मेल खाता है जब तुरंत बाद bar न हो।
foo(?!bar)सकारात्मक lookbehind (?<=...)
Lookbehind समर्थित JavaScript रनटाइम में यह डॉलर चिह्न के बाद के अंकों से मेल खाता है।
(?<=\$)\d+नकारात्मक lookbehind (?<!...)
जाँचा गया पूर्ववर्ती संदर्भ डॉलर चिह्न हो तो यह संख्या को बाहर रखता है।
(?<!\$)\b\d+Lookaround बनाम कैप्चर समूह
Lookaround संदर्भ को उपभोग किए बिना जाँचता है। कैप्चर समूह मिलान में भाग लेने वाला टेक्स्ट रिकॉर्ड करता है।
आम गलतियाँ
- मिलान में assertion का टेक्स्ट आने की अपेक्षा करना।
- मानना कि हर इंजन में lookbehind समर्थन समान है।
- सरल सीमा अधिक स्पष्ट हो तब lookaround उपयोग करना।
- ऐसा assertion बनाना जिसकी परफ़ॉर्मेंस समझना कठिन हो।
Regex Tester में lookaround आज़माएँ
साझा लैब ब्राउज़र का JavaScript RegExp इंजन उपयोग करती है, इसलिए उसके परिणाम वर्तमान रनटाइम दिखाते हैं।
उदाहरण आज़माएँ
Lookahead से USD अनिवार्य करें
Assertion प्रत्यय को संख्यात्मक मिलान में जोड़े बिना जाँचता है।
\d+(?= USD)अपेक्षित परिणाम: 10 और 30 मेल खाते हैं, EUR से पहले का 20 नहीं।
उदाहरण आज़माएँ
बाद का एक प्रत्यय अस्वीकार करें
नकारात्मक lookahead तुरंत bar के पहले आने वाले foo को छोड़ता है।
foo(?!bar)अपेक्षित परिणाम: अकेला foo और fooqux का foo मेल खाते हैं, foobar नहीं।
उदाहरण आज़माएँ
डॉलर चिह्न के बाद के अंक मिलाएँ
सकारात्मक lookbehind पहले के मुद्रा चिह्न को उपभोग किए बिना जाँचता है।
(?<=\$)\d+अपेक्षित परिणाम: $ के बाद के 10 और 30 मेल खाते हैं, EUR के बाद का 20 नहीं।
Assertion चलाएँ
Regex lookaround जाँचें
सकारात्मक और नकारात्मक उदाहरणों पर वास्तविक JavaScript इंजन के मिलान सत्यापित करें।