re मॉड्यूल की finditer विधि
re मॉड्यूल की finditer विधि
एक स्ट्रिंग में रेगुलर एक्सप्रेशन के
सभी मिलानों का एक इटरेटर लौटाती है। विधि के पहले पैरामीटर में हम
रेगुलर एक्सप्रेशन निर्दिष्ट करते हैं। दूसरे पैरामीटर में हम
वह स्ट्रिंग सेट करते हैं जिसमें हम रेगुलर एक्सप्रेशन खोज रहे हैं। तीसरे
वैकल्पिक पैरामीटर में फ्लैग्स सेट किए जा सकते हैं।
यह विधि बाएं से दाएं सभी मिलानों की जांच करती है।
सिंटैक्स
import re
re.finditer(रेगुलर_एक्सप्रेशन, स्ट्रिंग, [फ्लैग्स])
उदाहरण
आइए हमारी स्ट्रिंग में अंकों वाली सभी सबस्ट्रिंग्स ढूंढते हैं:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
कोड निष्पादन का परिणाम:
<callable_iterator object at 0x000002AA891300A0>
उदाहरण
आइए अब res वेरिएबल घोषित करते हैं,
जिसका मान पिछले उदाहरण में प्राप्त वस्तु होगी।
फिर इसे लूप के साथ पुनरावृत्त करते हैं:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
कोड निष्पादन के बाद हमें दो Match object वस्तुएं मिलती हैं:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
ये वस्तुएं टपल के रूप में रेगुलर एक्सप्रेशन के सभी मिलानों की जानकारी संग्रहीत करती हैं। हम इंडेक्स के अनुसार इनमें से मिलान प्रिंट कर सकते हैं:
for el in res:
print(el[0])
कोड निष्पादन का परिणाम:
'123'
'456'
उदाहरण
अधिक स्पष्टता के लिए, आइए मिलान खोजते समय ग्रुप्स का उपयोग करें। और लूप के साथ वस्तुओं को पुनरावृत्त करते समय पहला मिलान प्रिंट करें (इसे जीरो ग्रुप माना जाएगा), साथ ही इसके तत्व, बदले में ग्रुप्स में विभाजित:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
कोड निष्पादन के बाद हमें जीरो ग्रुप, यानी पूरी सबस्ट्रिंग, और इस सबस्ट्रिंग का पहला और दूसरा वर्ण मिलता है:
'12' '1' '2'
'45' '4' '5'
यह भी देखें
-
findallविधिreमॉड्यूल की,
जो स्ट्रिंग में सभी मिलानों की सूची लौटाती है -
searchविधिreमॉड्यूल की,
जो स्ट्रिंग में रेगुलर एक्सप्रेशन का पहला मिलान ढूंढती है -
matchविधिreमॉड्यूल की,
जो स्ट्रिंग की शुरुआत में रेगुलर एक्सप्रेशन का मिलान ढूंढती है -
fullmatchविधिreमॉड्यूल की,
जो स्ट्रिंग में रेगुलर एक्सप्रेशन के सभी मिलान ढूंढती है -
Match objectreमॉड्यूल की,
जिसमें रेगुलर एक्सप्रेशन के मिलानों की जानकारी होती है -
splitविधिreमॉड्यूल की,
जो निर्दिष्ट सेपरेटर के अनुसार स्ट्रिंग को सूची में विभाजित करती है