पायथन में रिप्लेसमेंट स्ट्रिंग में कैप्चर ग्रुप
sub मेथड के साथ काम करते समय, अगर
रेगुलर एक्सप्रेशन में कुछ कैप्चर ग्रुप में रखना हो,
तो रिप्लेसमेंट स्ट्रिंग में डबल बैकस्लैश \
और कैप्चर ग्रुप नंबर लिखकर उस कैप्चर ग्रुप की सामग्री
डाल सकते हैं। उदाहरण के लिए, \1 -
पहला कैप्चर ग्रुप, \2 - दूसरा कैप्चर ग्रुप
और इसी तरह आगे।
यह क्यों जरूरी है और इसका उपयोग कैसे करें आइए उदाहरणों से देखते हैं।
उदाहरण
आइए सभी नंबर ढूंढें और उनकी जगह उन्हीं नंबरों को, लेकिन गोल कोष्ठकों में डालें। इसके लिए सभी मिले नंबरों को उन्हीं के स्थान पर कोष्ठकों में बदल दें:
txt = '1 23 456 xax'
res = re.sub('(\d+)', '(\1)', txt)
print(res)
नतीजे के रूप में वेरिएबल में निम्नलिखित लिखा जाएगा:
'(1) (23) (456) xax'
उदाहरण
आइए ऐसी सभी स्ट्रिंग्स ढूंढें जो
अक्षर 'x' से घिरे नंबर हैं और इन
नंबरों को उन्हीं से बदल दें, लेकिन '!' चिन्हों
से घिरे:
txt = 'x1x x23x x456x xax'
res = re.sub('x(\d+)x', '!\1!', txt)
print(res)
नतीजे के रूप में वेरिएबल में निम्नलिखित लिखा जाएगा:
'!1! !23! !456! xax'
उदाहरण
आइए निम्नलिखित समस्या का समाधान करें: एक स्ट्रिंग दी गई है
'aaa@bbb ccc@ddd' - अक्षर, फिर
एट साइन (@), फिर अक्षर। 'aaa@bbb' सबस्ट्रिंग में
'@' से पहले और बाद के अक्षरों को
आपस में बदलना है:
txt = 'aaa@bbb ccc@ddd'
res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt)
print(res)
नतीजे के रूप में वेरिएबल में निम्नलिखित लिखा जाएगा:
'bbb@aaa ccc@ddd'
प्रैक्टिकल समस्याएं
एक स्ट्रिंग दी गई है:
txt = '12 34 56 78'
सभी दो-अंकीय नंबरों में अंकों के स्थान बदलें।
एक स्ट्रिंग दी गई है जिसमें तारीख है:
txt = '31.12.2025'
इस तारीख को '2025.12.31' के फॉर्मेट में बदलें।