पायथन में रेगुलर एक्सप्रेशन के कैरेक्टर सेट

कैरेक्टर ग्रुप \d और \w बहुत लचीले नहीं हैं। यहाँ तक कि इतना सरल कार्य, जैसे सभी अक्षर ढूंढना, लेकिन अंक नहीं - उनके द्वारा हल नहीं किया जा सकता। ऐसे कार्यों के लिए वर्गाकार कोष्ठकों का उपयोग करना चाहिए, जो 'या' के ऑपरेशन को दर्शाते हैं।

वर्गाकार कोष्ठक अंदर सूचीबद्ध किसी भी एक कैरेक्टर का स्थान लेते हैं। उदाहरण के लिए, इस तरह: x[abc]x - हम कह रहे हैं कि किनारों पर अक्षर इक्स होने चाहिए, और अंदर - एक कैरेक्टर: या तो 'a', या 'b', या 'c'।

वर्गाकार कोष्ठकों के बाद पुनरावृत्ति ऑपरेटर लिखे जा सकते हैं। उदाहरण के लिए, इस तरह: x[abc]+x - हम कह रहे हैं कि इक्स के अंदर 'a', 'b' और 'c' कैरेक्टरों की कोई भी संख्या हो सकती है - किसी भी संयोजन में।

न केवल कैरेक्टरों को सूचीबद्ध किया जा सकता है, बल्कि दो कैरेक्टरों के बीच हाइफन लिखकर कैरेक्टरों के समूह भी बनाए जा सकते हैं। उदाहरण के लिए, इस तरह: [a-d] - हमें 'a' से 'd' तक के सभी कैरेक्टर मिलते हैं।

आइए उदाहरणों पर नजर डालें।

उदाहरण

इस उदाहरण में सर्च पैटर्न इस प्रकार है: इक्स के बीच 'a' से 'z' तक कोई भी अक्षर:

<

+Python+> txt = 'xax xbx xcx x@x' res = re.sub('x[a-z]x', '!', txt) print(res)

<

-python->

कोड निष्पादन का परिणाम:

python'! ! ! x@x'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस प्रकार है: इक्स के बीच 'a' से 'k' तक कोई भी अक्षर:

pythontxt = 'xax xbx xmx x@x'
res = re.sub('x[a-k]x', '!', txt)

print(res)

कोड निष्पादन का परिणाम:

python'! ! xmx x@x'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस प्रकार है: इक्स के बीच 'A' से 'Z' तक कोई भी अक्षर:

pythontxt = 'xax xBx xcx x@x'
res = re.sub('x[A-Z]x', '!', txt)

print(res)

कोड निष्पादन का परिणाम:

python'xax ! xcx x@x'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस प्रकार है: इक्स के बीच 0 से 9 तक कोई भी अंक:

pythontxt = 'xax x1x x3x x5x x@x'
res = re.sub('x[0-9]x', '!', txt)

print(res)

कोड निष्पादन का परिणाम:

python'xax ! ! ! x@x'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस प्रकार है: इक्स के बीच 3 से 7 तक कोई भी अंक:

pythontxt = 'xax x1x x3x x5x x@x'
res = re.sub('x[3-7]x', '!', txt)

print(res)

कोड निष्पादन का परिणाम:

python'xax x1x ! ! x@x'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस प्रकार है: इक्स के बीच 'a' से 'z' तक कोई भी अक्षर या 1 से 9 तक का अंक:

pythontxt = 'xax x1x x3x x5x x@x'
res = re.sub('x[a-z1-9]x', '!', txt)

print(res)

कोड निष्पादन का परिणाम:

python'! ! ! ! x@x'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस प्रकार है: इक्स के बीच 'a' से 'z' तक का अक्षर या 'A' से 'Z' तक का अक्षर:

pythontxt = 'xax xBx xcx x5x x@x'
res = re.sub('x[a-zA-Z]x', '!', txt)

print(res)

कोड निष्पादन का परिणाम:

python'! ! ! x5x x@x'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस प्रकार है: इक्स के बीच 'a' से 'z' तक का अक्षर या अंक 1, 2:

pythontxt = 'xax xbx x1x x2x x3x'
res = re.sub('x[a-z12]x', '!', txt)

print(res)

कोड निष्पादन का परिणाम:

python'! ! ! ! x3x'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस प्रकार है: इक्स के बीच 'a' से 'z' तक के अक्षर 1 या अधिक की संख्या में:

pythontxt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]+x', '!', txt)

print(res)

कोड निष्पादन का परिणाम:

python'xx ! ! ! x123x xa3x'

उदाहरण

आइए इसे ऐसा बनाएं कि अक्षरों की संख्या शून्य भी हो सकती है:

pythontxt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]*x', '!', txt)

print(res)

परिणामस्वरूप हमें मिलेगा:

python'! ! ! ! x123x xa3x'

उदाहरण

वर्गाकार कोष्ठकों के अंदर एस्केप किए गए कैरेक्टर भी निर्दिष्ट किए जा सकते हैं। आइए अक्षरों और अंकों के अनुक्रम को ढूंढें, जो शून्य या अधिक बार दोहराया गया हो:

pythontxt = 'xx x@x xadx xas12x xa3x'
res = re.sub('x[a-z\d]*x', '!', txt)

print(res)

कोड निष्पादन का परिणाम:

python'! x@x ! ! !'

उदाहरण

यदि हमें और वर्गाकार कोष्ठक निर्दिष्ट करने की आवश्यकता है, तो हम उन्हें भी अवश्य एस्केप करें:

pythontxt = 'xx xrx xas[]x x3x'
res = re.sub('x[a-z\[\]]*x', '!', txt)

print(res)

कोड निष्पादन का परिणाम:

python'! ! ! x3x'

प्रायोगिक समस्याएं

Задание 1

एक स्ट्रिंग दी गई है:

pythontxt = 'aba aea aca aza axa'

एक रेगुलर एक्सप्रेशन लिखें, जो निम्नलिखित पैटर्न के अनुसार ढूंढे: किनारों पर अक्षर 'a' हैं, और उनके बीच - अक्षर 'b', 'e' या 'x'।

Задание 2

एक स्ट्रिंग दी गई है:

pythontxt = 'a1a a3a a7a a9a aba'

एक रेगुलर एक्सप्रेशन लिखें, जो निम्नलिखित पैटर्न के अनुसार ढूंढे: किनारों पर अक्षर 'a' हैं, और उनके बीच - 3 से 6 तक का अंक।

Задание 3

एक स्ट्रिंग दी गई है:

pythontxt = 'aba aea afa aha aga'

एक रेगुलर एक्सप्रेशन लिखें, जो निम्नलिखित पैटर्न के अनुसार ढूंढे: किनारों पर अक्षर 'a' हैं, और उनके बीच - 'a' से 'g' तक का अक्षर।

Задание 4

एक स्ट्रिंग दी गई है:

pythontxt = 'aba aea afa aha aga'

एक रेगुलर एक्सप्रेशन लिखें, जो निम्नलिखित पैटर्न के अनुसार ढूंढे: किनारों पर अक्षर 'a' हैं, और उनके बीच - 'a' से 'f' तक और 'j' से 'z' तक का अक्षर।

Задание 5

एक स्ट्रिंग दी गई है:

pythontxt = 'aAa aea aEa aJa a3a'

एक रेगुलर एक्सप्रेशन लिखें, जो निम्नलिखित पैटर्न के अनुसार ढूंढे: किनारों पर अक्षर 'a' हैं, और उनके बीच - 'a' से 'f' तक और 'A' से 'D' तक का अक्षर।

Задание 6

एक स्ट्रिंग दी गई है:

pythontxt = 'aAXa aeffa aGha aza ax23a a3sSa'

एक रेगुलर एक्सप्रेशन लिखें, जो निम्नलिखित पैटर्न के अनुसार ढूंढे: किनारों पर अक्षर 'a' हैं, और उनके बीच - छोटे लैटिन अक्षर, बाकियों को प्रभावित किए बिना।

Задание 7

एक स्ट्रिंग दी गई है:

pythontxt = 'aAXa aeffa aGha aza ax23a a3sSa'

एक रेगुलर एक्सप्रेशन लिखें, जो निम्नलिखित पैटर्न के अनुसार ढूंढे: किनारों पर अक्षर 'a' हैं, और उनके बीच - छोटे और बड़े लैटिन अक्षर, बाकियों को प्रभावित किए बिना।

Задание 8

एक स्ट्रिंग दी गई है:

pythontxt = 'aAXa aeffa aGha aza ax23a a3sSa'

एक रेगुलर एक्सप्रेशन लिखें, जो निम्नलिखित पैटर्न के अनुसार ढूंढे: किनारों पर अक्षर 'a' हैं, और उनके बीच - छोटे लैटिन अक्षर और अंक, बाकियों को प्रभावित किए बिना।