Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
Prezident Shavkat Mirziyoyev Surxondaryo viloyatiga jo‘nab ketdi.
—
Президент Шавкат Мирзиёев отбыл в Сурхандарьинскую область.
#Mirziyoyev#safar#Surxondaryo
Prezident.uz|Facebook|Instagram|YouTube|X
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев Самарқанд шаҳрига келди.
Давлатимиз раҳбари Россия Федерацияси ташқи ишлар вазири Сергей Лавров ҳамда бугун мамлакатимизга ташриф билан келадиган Туркман халқининг миллий етакчиси, Туркманистон Халқ Маслаҳати Раиси Гурбангули Бердимуҳамедов билан учрашувлар ўтказади.
—
Президент Республики Узбекистан Шавкат Мирзиёев прибыл в город Самарканд.
Глава государства проведет встречу с министром иностранных дел Российской Федерации Сергеем Лавровым, а также с Национальным лидером туркменского народа, Председателем Халк Маслахаты Туркменистана Гурбангулы Бердымухамедовым, который сегодня прибудет в нашу страну с визитом.
#Mirziyoyev#safar#Samarqand
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Samarqand viloyatiga jo‘nab ketdi.
—
Президент Шавкат Мирзиёев отбыл в Самаркандскую область.
#Mirziyoyev#safar#Samarqand
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Samarqand viloyatiga jo‘nab ketdi.
—
Президент Шавкат Мирзиёев отбыл в Самаркандскую область.
#Mirziyoyev#safar#Samarqand
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Samarqand viloyatiga jo‘nab ketdi.
—
Президент Шавкат Мирзиёев отбыл в Самаркандскую область.
#Mirziyoyev#safar#Samarqand
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Samarqand viloyatiga jo‘nab ketdi.
—
Президент Шавкат Мирзиёев отбыл в Самаркандскую область.
#Mirziyoyev#safar#Samarqand
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Samarqand viloyatiga jo‘nab ketdi.
—
Президент Шавкат Мирзиёев отбыл в Самаркандскую область.
#Mirziyoyev#safar#Samarqand
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Surxondaryo viloyatiga jo‘nab ketdi.
—
Президент Шавкат Мирзиёев отбыл в Сурхандарьинскую область.
#Mirziyoyev#safar#Surxondaryo
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Samarqand viloyatiga jo‘nab ketdi.
—
Президент Шавкат Мирзиёев отбыл в Самаркандскую область.
#Mirziyoyev#safar#Samarqand
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Surxondaryo viloyatiga jo‘nab ketdi.
—
Президент Шавкат Мирзиёев отбыл в Сурхандарьинскую область.
#Mirziyoyev#safar#Surxondaryo
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Samarqand viloyatiga jo‘nab ketdi.
—
Президент Шавкат Мирзиёев отбыл в Самаркандскую область.
#Mirziyoyev#safar#Samarqand
Prezident.uz|Facebook|Instagram|YouTube|X
Президент Шавкат Мирзиёев ҳудудлар иқтисодиёти, муҳим ижтимоий дастурлар ижроси билан танишиш мақсадида Сурхондарё вилоятига жўнаб кетди.
—
Президент Шавкат Мирзиёев в целях ознакомления с развитием экономики регионов, исполнением важных социальных программ отбыл в Сурхандарьинскую область.
#Mirziyoyev#safar#Surxondaryo
Prezident.uz|Facebook|Instagram|YouTube|Twitter