बेहतर समझने के लिए आइए तीन अभिव्यक्तियों और एक कैप्चरिंग समूह को लागू करें और प्रत्येक व्यवहार का विश्लेषण करें।
() कैप्चरिंग ग्रुप - कोष्ठक के अंदर रेगेक्स का मिलान किया जाना चाहिए और मैच कैप्चरिंग ग्रुप बना सकता है
(?:) गैर कैप्चरिंग समूह - कोष्ठक के अंदर रेगेक्स का मिलान किया जाना चाहिए, लेकिन कैप्चरिंग समूह नहीं बनाता है
(?=) सकारात्मक देखो आगे - जोर देता है कि regex का मिलान किया जाना चाहिए
(?!) नेगेटिव लुक आगे - यह दावा करता है कि regex का मिलान करना असंभव है
चलो छोड़ो आवेदन q(u)iकरते हैं । मैच क्यू और कैप्चरिंग ग्रुप मैच यू । कैप्चरिंग ग्रुप के अंदर मैच लिया जाता है और कैप्चरिंग ग्रुप बनाया जाता है। तो इंजन के साथ जारी है । और पूर्ति करेंगे, मैं । मैच का यह आखिरी प्रयास सफल है। क्यू मिलान किया गया है और यू के साथ एक कैप्चरिंग ग्रुप हैquii बनाया जाता है।
चलो छोड़ो आवेदन q(?:u)iकरते हैं । फिर, मैच q और गैर-कैप्चरिंग ग्रुप मैच मैच यू । गैर-कैप्चरिंग ग्रुप से मैच लिया जाता है, लेकिन कैप्चरिंग ग्रुप नहीं बनाया जाता है। तो इंजन के साथ जारी है । और पूर्ति करेंगे, मैं । मैच का यह आखिरी प्रयास सफल है। क्वि का मिलान किया जाता हैquii
चलो छोड़ो आवेदन q(?=u)iकरते हैं । लुकहेड सकारात्मक है और इसके बाद एक और टोकन है। फिर, मेल खाता क्ष और मैचों यू । फिर से, लुकहेड से मैच को छोड़ दिया जाना चाहिए, इसलिए इंजन स्ट्रिंग से यू में वापस कदम रखता है । लुकहेड सफल था, इसलिए इंजन के साथ जारी है । लेकिन मेल नहीं खा सकता यू । इसलिए यह मैच का प्रयास विफल हो जाता है।quiii
चलो छोड़ो आवेदन q(?=u)uकरते हैं । लुकहेड सकारात्मक है और इसके बाद एक और टोकन है। फिर, मेल खाता क्ष और मैचों यू । लुकहेड से मैच को छोड़ दिया जाना चाहिए, इसलिए इंजन स्ट्रिंग से यू में वापस कदम रखता है । लुकहेड सफल था, इसलिए इंजन के साथ जारी है । और यू से मेल खाएगा । इसलिए मैच का यह प्रयास सफल है। ququuuu का मिलान किया जाता है
चलो छोड़ो आवेदन q(?!i)uकरते हैं । यहां तक कि इस मामले में लुकहेड सकारात्मक है (क्योंकि मेल नहीं खाता) और इसके बाद एक और टोकन है। फिर से q से मेल खाता है और यू से मेल नहीं खाता है । लुकहेड से मैच को छोड़ दिया जाना चाहिए, इसलिए इंजन स्ट्रिंग से यू में वापस कदम रखता है । लुकहेड सफल था, इसलिए इंजन के साथ जारी है । और यू से मेल खाएगा । इसलिए मैच का यह प्रयास सफल है। quiqiuuu का मिलान किया जाता है
इसलिए, निष्कर्ष में, लुकहेड और गैर-कैप्चरिंग समूहों के बीच वास्तविक अंतर यह है कि क्या आप सिर्फ अस्तित्व या परीक्षण का परीक्षण करना चाहते हैं और मैच को बचा सकते हैं। कैप्चरिंग ग्रुप महंगे हैं इसलिए इसका इस्तेमाल विवेकपूर्ण तरीके से करें।