मेरे पास एक रेगेक्स है जो इसक्या करता है?: रेगेक्स में करें
/^(?:\w+\s)*(\w+)$*/
जैसा दिखता है ?:
क्या है?
मेरे पास एक रेगेक्स है जो इसक्या करता है?: रेगेक्स में करें
/^(?:\w+\s)*(\w+)$*/
जैसा दिखता है ?:
क्या है?
यह इंगित करता है कि उप-पैटर्न एक गैर-कैप्चर उप-पैटर्न है। इसका मतलब है कि (?:\w+\s)
में जो कुछ भी मेल खाता है, भले ही यह ()
से घिरा हुआ हो, यह मैचों की सूची में दिखाई नहीं देगा, केवल (\w+)
होगा।
आप अभी भी एक विशिष्ट पैटर्न की तलाश में हैं (इस मामले में, कम से कम एक शब्द के बाद एक सिंगल व्हाइटस्पेस चरित्र), लेकिन आपको परवाह नहीं है कि वास्तव में क्या मेल खाता है।
+1 अधिक जानकारी: http://www.regular-expressions.info/brackets.html –
इसका मतलब है केवल समूह लेकिन समूहबद्ध भाग को याद नहीं है।
डिफ़ॉल्ट रूप से (
)
रेगेक्स इंजन को उस स्ट्रिंग के हिस्से को याद रखने के लिए कहता है जो इसके बीच पैटर्न से मेल खाता है। लेकिन कई बार हम सिर्फ समूह के लिए एक पैटर्न regex स्मृति ट्रिगर, कि हम (
के स्थान पर (?:
का उपयोग करने के लिए बिना चाहते हैं, इसकी उपयोगिता से समूहों को निकालने के लिए आवश्यक कोड सरल करने के लिए भी है मिलान किए गए परिणाम। उदाहरण के लिए, आपके (\ w +) समूह को समूह 1 के रूप में जाना जाता है, इसके बिना किसी भी समूह के बारे में चिंतित होने के बिना। यह आपके कोड की रखरखाव में सुधार कर सकता है।
लोगों को भ्रमित करने के लिए यह है। – JAL
[गैर कैप्चरिंग समूह का संभावित डुप्लिकेट? (?:)] (http://stackoverflow.com/questions/3512471/non-capturing-group) – HamZa