पायथन में रेगुलर एक्सप्रेशन में वर्ण समूह

विशेष कमांड होती हैं जो पूरे वर्ण समूहों को एक साथ चुनने की अनुमति देती हैं। कमांड \d का अर्थ है अंक 0 से 9 तक। कमांड \w एक अंक, लैटिन वर्ण या अंडरस्कोर को दर्शाता है। कमांड \s स्पेस या व्हाइटस्पेस वर्ण को दर्शाता है: स्पेस, नई लाइन, टैब। कमांड के मान को उलटा किया जा सकता है, बड़ा अक्षर लिखकर: उदाहरण के लिए, यदि \d - अंक है, तो \D - गैर-अंक है।

उदाहरण

आइए सभी अंक ढूंढते हैं:

pythontxt = '1 12 123'
res = re.sub('\d', '!', txt)

print(res)

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

python'! !! !!!'

उदाहरण

पुनरावृत्ति ऑपरेटर कमांड-समूहों को एक संपूर्ण मानते हैं, यानी ग्रुपिंग ब्रेसिज़ आवश्यक नहीं हैं। अगले उदाहरण में सर्च पैटर्न इस तरह दिखता है: 0 से 9 तक का अंक एक या अधिक बार:

pythontxt = '1 12 123 abc @@@'
res = re.sub('\d+', '!', txt)

print(res)

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

python'! ! ! abc @@@'

उदाहरण

अगले उदाहरण में सर्च पैटर्न इस तरह दिखता है: कुछ भी एक या अधिक बार, लेकिन 0 से 9 तक का अंक नहीं:

pythontxt = '123abc3@@'
res = re.sub('\D+', '!', txt)

print(res)

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

python'123!3!'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस तरह दिखता है: व्हाइटस्पेस वर्ण एक बार:

pythontxt = '1 12 123 abc @@@'
res = re.sub('\s', '!', txt)

print(res)

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

python'1!12!123!abc!@@@'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस तरह दिखता है: गैर-व्हाइटस्पेस वर्ण एक या अधिक बार। स्पेस से अलग की गई सभी सबस्ट्रिंग, '!' से बदल दी जाएंगी:

pythontxt = '1 12 123 abc @@@'
res = re.sub('\S+', '!', txt)

print(res)

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

python'! ! ! ! !'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस तरह दिखता है: अंक या अक्षर एक या अधिक बार। अंकों और अक्षरों से बनी सभी सबस्ट्रिंग, '!' से बदल दी जाएंगी:

pythontxt = '1 12 123a Abc @@@'
res = re.sub('\w+', '!', txt)

print(res)

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

python'! ! ! ! @@@'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस तरह दिखता है: गैर-अंक और गैर-अक्षर एक या अधिक बार। हमारे मामले में यह परिभाषा '@@@' और सभी स्पेस (आखिरकार, वे भी न तो अंक हैं और न ही अक्षर) पर लागू होती है। ध्यान दें कि अंत में एक '!' है - इसमें स्ट्रिंग ' @@@' - सामने वाले स्पेस के साथ बदली गई है:

pythontxt = '1 12 123 Abc @@@'
res = re.sub('\W+', '!', txt)

print(res)

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

python'1!12!123!Abc!'

व्यावहारिक समस्याएं

Задание 1

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

pythontxt = 'a1a a2a a3a a4a a5a aba aca'

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

Задание 2

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

pythontxt = 'a1a a22a a333a a4444a a55555a aba aca'

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

Задание 3

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

pythontxt = 'aa a1a a22a a333a a4444a a55555a aba aca'

एक रेगुलर एक्सप्रेशन लिखें, जो ऐसी स्ट्रिंग ढूंढे, जिसमें किनारों पर 'a' अक्षर हों, और उनके बीच कोई भी संख्या में अंक (यहां तक कि शून्य अंक, यानी स्ट्रिंग 'aa') हों।

Задание 4

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

pythontxt = 'avb a1b a2b a3b a4b a5b abb acb'

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

Задание 5

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

pythontxt = 'ave a#b a2b a$b a4b a5b a-b acb'

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

Задание 6

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

pythontxt = 'ave a#a a2a a$a a4a a5a a-a aca'

एक रेगुलर एक्सप्रेशन लिखें, जो सभी स्पेस को '!' से बदल दे।