पायथन में रेगुलर एक्सप्रेशन में 'या' कमांड
कमांड '|', जो कमांड [ ] की तुलना में
'या' का एक अधिक शक्तिशाली संस्करण
का प्रतिनिधित्व करती है। यह कमांड रेगेक्स
को कई भागों में विभाजित करने की अनुमति
देती है। इस मामले में, मिलान या तो रेगेक्स
के एक भाग के तहत आ सकता है, या दूसरे के
तहत। आइए उदाहरणों पर एक नज़र डालें।
उदाहरण
इस उदाहरण में, खोज पैटर्न इस प्रकार है:
तीन अक्षर 'a' या तीन अक्षर
'b':
txt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)
print(res)
कोड निष्पादन का परिणाम:
'! ! abb'
उदाहरण
इस उदाहरण में, खोज पैटर्न इस प्रकार है:
तीन अक्षर 'a' या 1 और
अधिक अक्षर 'b':
txt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)
print(res)
कोड निष्पादन का परिणाम:
'! ! ! ! axx'
उदाहरण
इस उदाहरण में, खोज पैटर्न इस प्रकार है: एक या अधिक अक्षर या तीन अंक:
txt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)
print(res)
कोड निष्पादन का परिणाम:
'! ! ! 1 12 !'
उदाहरण
वर्टिकल बार रेगेक्स को दो भागों में नहीं, बल्कि किसी भी संख्या में भागों में विभाजित कर सकता है:
txt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)
print(res)
कोड निष्पादन का परिणाम:
'! ! ! ddd'
उदाहरण
यदि वर्टिकल बार गोल कोष्ठक के अंदर है, तो
'या' केवल उन कोष्ठकों के अंदर काम
करता है।
उदाहरण के लिए, आइए निम्नलिखित पैटर्न के
अनुसार स्ट्रिंग्स खोजें: शुरुआत में या
तो 'a', या 'b' एक या अधिक
बार है, और उसके बाद दो अक्षर 'x':
txt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)
print(res)
कोड निष्पादन का परिणाम:
'! ! ! exx'
व्यावहारिक समस्याएं
एक स्ट्रिंग दी गई है:
txt = 'aeeea aeea aea axa axxa axxxa'
एक रेगुलर एक्सप्रेशन लिखें जो निम्नलिखित
पैटर्न के अनुसार स्ट्रिंग्स ढूंढेगा: किनारों
पर अक्षर 'a' हैं, और उनके बीच - या
तो अक्षर 'e' कोई भी संख्या में या
अक्षर 'x' कोई भी संख्या में।
एक स्ट्रिंग दी गई है:
txt = 'aeeea aeea aea axa axxa axxxa'
एक रेगुलर एक्सप्रेशन लिखें जो निम्नलिखित
पैटर्न के अनुसार स्ट्रिंग्स ढूंढेगा: किनारों
पर अक्षर 'a' हैं, और उनके बीच - या
तो अक्षर 'e' दो बार या अक्षर 'x'
कोई भी संख्या में।