लुकरॉइड्स शून्य चौड़ाई के दावे हैं। वे एक रेगेक्स के लिए जांच करते हैं (वर्तमान स्थिति के दाएं या बाएं - आगे या पीछे के आधार पर), एक मैच पाए जाने पर सफल होता है या विफल रहता है (यदि यह सकारात्मक या नकारात्मक है) के आधार पर और मिलान किए गए हिस्से को छोड़ देता है। वे किसी भी चरित्र का उपभोग नहीं करते हैं - उनके बाद regex के लिए मिलान (यदि कोई हो), एक ही कर्सर स्थिति पर शुरू होगा।
पढ़ें regular-expression.info अधिक जानकारी के लिए।
वाक्य - विन्यास:
(?=REGEX_1)REGEX_2
तभी मैच करें जब REGEX_1 मेल खाता हो; REGEX_1 से मिलान करने के बाद, मैच को छोड़ दिया जाता है और REGEX_2 की खोज उसी स्थिति में शुरू होती है।
उदाहरण:
(?=[a-z0-9]{4}$)[a-z]{1,2}[0-9]{2,3}
REGEX_1 वह है [a-z0-9]{4}$
जो लाइन के अंत के बाद चार अल्फ़ान्यूमेरिक वर्णों से मेल खाता है।
REGEX_2 वह है [a-z]{1,2}[0-9]{2,3}
जो दो या तीन अंकों के बाद एक या दो अक्षरों से मेल खाता है।
REGEX_1 सुनिश्चित करता है कि स्ट्रिंग की लंबाई वास्तव में 4 है, लेकिन किसी भी वर्ण का उपभोग नहीं करता है ताकि REGEX_2 के लिए खोज उसी स्थान पर शुरू हो। अब REGEX_2 यह सुनिश्चित करता है कि स्ट्रिंग कुछ अन्य नियमों से मेल खाती है। लुक-फॉरवर्ड के बिना यह तीन या पाँच की लंबाई के तारों से मेल खाएगा।
वाक्य - विन्यास:
(?!REGEX_1)REGEX_2
तभी मैच करें जब REGEX_1 मेल नहीं खाता; REGEX_1 की जाँच करने के बाद, REGEX_2 की खोज उसी स्थिति में शुरू होती है।
उदाहरण:
(?!.*\bFWORD\b)\w{10,30}$
लुक-फॉरवर्ड पार्ट FWORD
स्ट्रिंग में जाँच करता है और अगर यह मिल जाता है तो विफल हो जाता है। यदि यह नहीं मिलता है FWORD
, तो लुक-फॉरवर्ड सफल होता है और निम्नलिखित भाग यह सत्यापित करता है कि स्ट्रिंग की लंबाई 10 और 30 के बीच है और इसमें केवल शब्द वर्ण हैंa-zA-Z0-9_
लुक-बैक लुक-फॉरवर्ड के समान है: यह सिर्फ वर्तमान कर्सर स्थिति के पीछे दिखता है। जावास्क्रिप्ट की तरह कुछ regex जायके के पीछे के दावे का समर्थन नहीं करता है। और अधिकांश फ्लेवर जो इसका समर्थन करते हैं (PHP, Python etc) को एक निश्चित लंबाई के लिए उस लुक-पीछे वाले हिस्से की आवश्यकता होती है।
- परमाणु समूह मूल रूप से एक टोकन मिलान के बाद समूह में बाद के टोकन को भूल जाते हैं / भूल जाते हैं। परमाणु समूहों के उदाहरणों के लिए इस पृष्ठ की जाँच करें