Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
Присоединяйтесь к семинару по чернозёмам в рамках Глобального почвенного партнёрства ФАО и узнайте о глобальных стратегиях устойчивого управления этими уникальными и продуктивными почвами.
🛡️ Вместе мы сможем укрепить продовольственную безопасность и повысить устойчивость к изменению климата, заботясь о #ЗдоровьеПочв (#SoilHealth).
📅 Подробнее о мероприятии:
🔗https://www.fao.org/global-soil-partnership/resources/events/detail/en/c/1740293/?fbclid=IwY2xjawLnChtleHRuA2FlbQIxMAABHnld7op566eIN562lYJE3xDhTzPD3Vt8HXHLl2jvQ9tkAEBh11OOqYYiWlMt_aem_WXx42Q1_zw3D1fIsHFb60w
📥 Регистрация открыта:
🔗https://fao.zoom.us/webinar/register/WN_PU7qLLPtS6Wz3-rhfM4jyw?fbclid=IwY2xjawLnC81leHRuA2FlbQIxMAABHo_eCeCUgZ1TmqgH9rKDPG-pLHXA6f5I0c2scr_ExcJt28UpUUAQGT0sRq2b_aem_zWAU5TEm78GBe7hiFtPCHw#/registration
Vegan diets can help the environment, but large-scale plant farming can hurt soil, wildlife, and cause pollution. Synthetic fertilizers used in farming can damage oceans and soil. Animal farming done the right way helps soil, supports wildlife, and uses natural manure. Eating animal foods gives important nutrients like B12 and iron that plants don’t provide.
🌿🐄🌎
[Read more]
@googlefactss
#Vegan#Environment#SoilHealth#AnimalFarming#Nutrition#SustainableFarming#EcoFriendly
Study Sustainability Hub
Apply Now!
PhD Research Fellowship in Regenerative Agriculture - World Vegetable Center
The World Vegetable Center (WorldVeg) invites applications for a PhD Research Fellowship in Regenerative Agriculture, offering doctoral students the opportunity to conduct advanced research on sustainable farming systems. Hosted at WorldVeg's headquarters in Taiwan, the fellowship focuses on regenerative practices that improve soil health, reduce greenhouse gas emissions, and enhance crop nutrition, contributing to resilient global food systems.
Who can apply:
PhD students enrolled in a recognised doctoral programme with a background in agronomy, agroecology, soil science, horticulture, climate change, or related fields, and the ability to conduct independent research in English.
17 Deadline: 15 January 2026
Location: Shanhua, Tainan, Taiwan
More info & apply: https://buff.ly/jIRdfiB
#PhDFellowship#RegenerativeAgriculture#WorldVeg
#SustainableFoodSystems#Agricultural Research
#ClimateSmartAgriculture#SoilHealth
#ResearchOpportunities
For more scholarships, internships and different Veterinary related opportunities, visit:
@vet_opportunities
@vet_opportunities
@vet_opportunities
@vet_opportunities