विकल्प और उनके अनुप्रयोग
वास्तविक दुनिया के अनुप्रयोगों में, हम अक्सर नियमित अभिव्यक्तियों का उपयोग करते हैं जो दो या अधिक विकल्पों में से किसी एक से मेल खाते हैं। इसके अलावा, हम कभी-कभी कई अभिव्यक्तियों पर लागू करने के लिए क्वांटिफायर का उपयोग करते हैं। ऐसे सभी लक्ष्यों को कोष्ठकों के साथ समूहीकृत करके प्राप्त किया जाता है; और, विकल्पों के उपयोग में, लंबवत बार (|) के साथ प्रत्यावर्तन लागू करना।
ऊर्ध्वाधर बार का उपयोग करना(|)
वैकल्पिक विकल्प तब उपयोगी होता है जब हमें कई भिन्न विकल्पों में से किसी एक का मिलान करने की आवश्यकता होती है। उदाहरण के लिए, रेगेक्स एयरवेज|एयरप्लेन|बॉम्बर एयरवेज या हवाई जहाज या बॉम्बर वाले किसी भी टेक्स्ट से मेल खाएगा। रेगेक्स air(ways|plane)|bomber.
. का उपयोग करके इसे प्राप्त किया जाता हैअगर हम रेगेक्स (वायुमार्ग | हवाई जहाज | बमवर्षक) का उपयोग करते हैं, तो यह तीन अभिव्यक्तियों में से किसी एक से मेल खाएगा। रेगेक्स (वायु (तरीके | विमान) | बॉम्बर) पर विचार करें, जिसमें दो कैप्चर होते हैं यदि पहली अभिव्यक्ति मेल खाती है (वायुमार्ग या हवाई जहाज पहले कैप्चर के रूप में और दूसरे कैप्चर के रूप में तरीके या विमान), और दूसरी अभिव्यक्ति मेल खाने पर एक कैप्चर ( बमवर्षक)। हम ?:इस तरह:के साथ एक ओपनिंग कोष्ठक का पालन करके कैप्चरिंग प्रभाव को बंद कर सकते हैं:
(हवा(?:तरीके|विमान)|बमवर्षक)
यदि यह मेल खाता है (वायुमार्ग या हवाई जहाज या बॉम्बर) तो इसमें केवल एक ही कैप्चर होगा।
उदाहरण
निम्न कोड ऊपर चर्चा किए गए बिंदुओं को दर्शाता है -
import re s = 'airways aircraft airplane bomber' result = re.findall(r'(airways|airplane|bomber)', s) print result result2 = re.findall(r'(air(ways|plane)|bomber)', s) print result2 result3 = re.findall(r'(air(?:ways|plane)|bomber)', s) print result3
आउटपुट
यह आउटपुट देता है
['airways', 'airplane', 'bomber'] [('airways', 'ways'), ('airplane', 'plane'), ('bomber', '')] ['airways', 'airplane', 'bomber']