मॉड्यूल पाठ (3/4)
गैर-कैप्चरिंग समूह: `(?:...)`
अक्सर कोष्ठकों की आवश्यकता केवल समूह (मात्रा निर्धारित करने, वैकल्पिक करने) के लिए होती है
और मूल्य निकालने के लिए नहीं। उस स्थिति में नॉन-कैप्चरिंग का उपयोग करें
संस्करण: (?:...). यह (...) के समान कार्य करता है लेकिन नहीं बनाता
एक क्रमांकित समूह.
Pattern: (?:https?)://(\w+\.\w+)
Sample: https://example.com e http://test.org
Match e gruppi:
match = "https://example.com" gruppo1 = "example.com"
match = "http://test.org" gruppo1 = "test.org"(?:https?) ? क्वांटिफ़ायर को लागू करने की योजना को समूहित करता है, लेकिन हम हैं
https को एक समूह के रूप में निकालने में कोई दिलचस्पी नहीं है: समूह 1 सीधे तौर पर है
डोमेन.
इसका उपयोग क्यों करें?
- पठनीयता: पाठक तुरंत समझ जाता है कि समूह केवल इसके लिए है संरचना, कोई मान निकालने के लिए नहीं।
- प्रदर्शन: इंजन को समूह के मैच को संग्रहीत करने की आवश्यकता नहीं है।
- स्वच्छ क्रमांकन: क्रमांकित समूह संरेखित रहते हैं "वह जानकारी जिसकी मुझे वास्तव में आवश्यकता है", बिना किसी हस्तक्षेप के।
गैर-कैप्चरिंग समूहों के साथ अनुकूलन
(?:...) का उपयोग इंजन को मध्यवर्ती मिलान परिणामों को संग्रहीत करने वाली मेमोरी को बर्बाद किए बिना ग्रुपिंग और क्वांटिफायर नियमों को लागू करने के लिए कहता है। भारी लूप या बहुत लंबी टेक्स्ट प्रोसेसिंग में इसकी अत्यधिक अनुशंसा की जाती है।
इसे अजमाएं
टेक्स्ट में प्रत्येक URL से डोमेन (`example.com`, `test.org`…) निकालें। प्रोटोकॉल के लिए `(?:https?)` का उपयोग करें (इसे कैप्चर करने की कोई आवश्यकता नहीं है) और डोमेन के लिए एकल समूह का उपयोग करें।
संकेत दिखाएँ
पहले समूह को (https?) से (?:https?) में बदलें: इसे कैप्चर करने की कोई आवश्यकता नहीं है, आपको केवल डोमेन चाहिए।
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम की समीक्षा करें
`ab` की प्रत्येक पुनरावृत्ति को एकल मिलान के रूप में खोजें, लेकिन समूह पर कब्जा किए बिना (क्योंकि आपको केवल पूरे मिलान की आवश्यकता है)।
संकेत दिखाएँ
पिछले पाठ के समान वाक्यविन्यास, लेकिन (ab)+ के बजाय (?:ab)+ के साथ।
3 प्रयासों के बाद समाधान उपलब्ध है
अतिरिक्त चुनौती
Find price digits followed optionally by decimal parts inside a non-capturing group, e.g. `100` or `100.50`.
संकेत दिखाएँ
(?:\\.\\d{2}) का उपयोग करें? दशमलव भाग को कैप्चर किए बिना वैकल्पिक बनाना।
3 प्रयासों के बाद समाधान उपलब्ध है