Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> text = '''
>>> Alex:8999123456
>>> Mike:+799987654
>>> Oleg:+344456789
>>> '''
Соответственно, для выделения нужных элементов будем использовать группы. Получится такой паттерн:
(\w+):([\d+]+)
Как мы будем формировать словарь из найденных групп?
>>> import re
>>> results = []
>>> for match in re.finditer(r"(\w+):([\d+]+)", text):
>>> results.append({
>>> "name": match.group(1),
>>> "phone": match.group(2)
>>> })
>>> print(results)
[{'name': 'Alex', 'phone': '8999123456'}, ...]
Можно немного сократить запись используя zip
>>> results = []
>>> for match in re.finditer(r"(\w+):([\d+]+)", text):
>>> results.append(dict(zip(['name', 'phone'], match.groups())))
Но есть способ лучше! Это именованные группы в regex. Можно в паттерне указать имя группы и результат сразу забрать в виде словаря.
>>> for match in re.finditer(r"(?P<name>\w+):(?P<phone>[\d+]+)", text):
>>> results.append(match.groupdict())
То есть всё что я сделал, это добавил в начале группы (внутри сбокочек) такую запись:
(?P<group-name>...)
Теперь найденная группа имеет имя и можно обратиться к ней как к элементу списка
>>> name = match['name']
Либо забрать сразу весь словарь методом groupdict()
>>> match.groupdict()
#tricks#regex
👆#ViksitBharatSankalpYatra is making waves nation-wide. More than 1 crore citizens have actively participated in the Yatra till now.
Reaching people across the length and breadth of the country, it is ensuring 100% saturation of Central government schemes and onboarding people on the journey to Viksit Bharat.
Be part of #HamaraSankalpViksitBharat by taking the pledge or being part of the Yatra near you.
Visit viksitbharatsankalp.gov.in for more information.
Go to twitter.com/HSVB2047 and Follow us on X for all the latest updates.
👆#ViksitBharatSankalpYatra का एकमात्र लक्ष्य, वंचितों को वरीयता।।
पीएम उज्ज्वला योजना द्वारा परिवारों को सशक्त बनाते हुए 10 करोड़ से अधिक एलपीजी सिलेंडर वितरित किए गए।
#HamaraSankalpViksitBharat अभियान में अपना अमूल्य योगदान दें।
👆जनसामान्य की हवाई यात्रा का सपना हो रहा साकार।
उड़ान पहल द्वारा 2.50 लाख से अधिक संचालित उड़ानें, 1.37 करोड़ से अधिक लोग इस योजना के तहत यात्रा करते हैं, और हवाई अड्डों की संख्या 2014 में 74 से दोगुनी होकर अब 148 हो गई है।
#ViksitBharatSankalpYatra#HamaraSankalpViksitBharat
👆जल सुरक्षित शहरों का निर्माण।
अमृत मिशन के तहत, सरकार ने 137 लाख नल से जल कनेक्शन, 105 लाख सीवर कनेक्शन प्रदान किए हैं, 692 स्टॉर्म वाटर ड्रेनेज प्रोजेक्ट को पूरा किया है और 2,960 जल जमाव केंद्रों को समाप्त किया है।
#ViksitBharatSankalpYatra#HamaraSankalpViksitBharat
👆स्वच्छ शहरों का निर्माण।
स्वच्छ भारत मिशन शहरी की बदौलत, हमने 63.04 लाख व्यक्तिगत घरेलू शौचालय, 6.36 लाख सामुदायिक और सार्वजनिक शौचालयों का निर्माण किया है और 4,355 शहरों को खुले में शौच से मुक्त घोषित किया है।
#ViksitBharatSankalpYatra#HamaraSankalpViksitBharat
👆स्मार्ट शहर में हाई-टेक और स्वस्थ जीवन पर जोर।
6800 से अधिक स्मार्ट कक्षाएं, 367 पुनर्निर्मित पार्क और 573 किमी से अधिक साइकिल ट्रैक से, हम एक ऐसे वातावरण का निर्माण कर रहे है जहां प्रौद्योगिकी कल्याण को बढ़ावा दे रही है।
#ViksitBharatSankalpYatra#HamaraSankalpViksitBharat
👆स्मार्ट सिटी मिशन के माध्यम से भारत के शहरों में उत्साहजनक बदलाव।
100 शहर, 7959 परियोजनाएं और 1.71 लाख करोड़ रुपये का प्रभावशाली निवेश। स्मार्ट, सतत और जीवंत शहरी केंद्रों के निर्माण की यात्रा जारी है।
#ViksitBharatSankalpYatra#HamaraSankalpViksitBharat
👆अपने घर का सपना हो रहा साकार।
2014 से, पीएम आवास योजना- (शहरी) के तहत 1.18 करोड़ घरों को मंजूरी दी गई है, जिसमें 8.11 लाख करोड़ रुपये का कुल निवेश हुआ है।
#ViksitBharatSankalpYatra#HamaraSankalpViksitBharat
👆भविष्य की जरुरतों के अनुरुप तैयार शहरों का निर्माण।।
आइए जानें कैसे प्रत्येक मूलभूत सुविधाओं से लैस समार्ट शहरों का निर्माण किया जा रहा है, जिससे ईज ऑफ लिविंग को भारी प्रोत्साहन मिला है।
#HamaraSankalpViksitBharat#ViksitBharatSankalpYatra
माईगव पल्स के साथ देश की नई उपलब्धियों को जानें, और नित-दिन नई ऊंचाईयों की ओर अग्रसर #NewIndia में अपना अमूल्य योगदान दें।
पढ़ने हेतु अभी विजिट करेंः https://static.mygov.in/static/s3fs-public/mygov_170080829582937911.pdf
#MyGovPULSE#ViksitBharatSankalpYatra#HamaraSankalpViksitBharat
👆नए भारत में तेज़ इंटरनेट स्पीड के साथ इंटरनेट क्रांति!
भारत में #5G लॉन्च के एक साल के भीतर 4 लाख से अधिक 5G बेस स्टेशन स्थापित किए गए, जो 97% शहरों को कवर करते हैं।
#ViksitBharatSankalpYatra#HamaraSankalpViksitBharat
👆शासन स्वयं चलकर पहुंचा देशवासियों के द्वार।
#ViksitBharatSankalpYatra भारत सरकार की सबसे व्यापक पहुंच के रूप में उभरी है।
आइए जानें इस पहल की उपलब्धियां...
#GoodGovernanceDay
#NewIndia#AtalBihariVajpayeeJi
#HamaraSankalpViksitBharat