Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
#tug‘ilgan kun
🥳🎂Bugun Diydor teatr-studiyasining mahoratli aktrisasi, sizlarga takrorlanmas ro‘llari bilan tanish bo‘lgan Iroda Kosimovaning tavallud ayyomi munosabati bilan chin yurakdan muborakbod etamiz.
🎁Oilaviy baxt hamda ijodiy parvoz bardavom bo‘laversin.
📱Telegram | 📱Instagram
#tug'ilgan kun
🎁
🎭📺 Bugun O'zbekistonda xizmat ko'rsatgan artist, teatr va kino aktyori, ustoz san'atkor xullas ta'riflashga ortiqcha so'z talab etmaydigan aktyor Karim Mirxadiyev o‘zini tavallud ayyomini nishonlamoqdalar.
🎭Biz Karim aka Mirxadiyevga uzoq umr, bardavom ijodiy muvafaqqiyatlar, oilaviy xotirjamlik tilab qolamiz. Teatrimiz sahnasida qo'yilishi kutilayotgan yana ko'pgina spektakllarda mahoratli ijrolarida hamda ko'plab iste'dodli talabalarni yetkazib chiqarishda kuch-quvvat tilaymiz.
📱Telegram | 📱Instagram
#Tug'ilgan_kun
Bugun "DIYDOR" teatr studiyasining mahoratli, kelajagi porloq, aktrisasi Elmira Ibragimova tavallud topgan kuni munosabati bilan baxt, omad, hayotda o'z oldiga qo'ygan yuksak maqsadlariga erishishida muvaffaqiyat tilaymiz.
🎉 Bugun tug‘ilgan kun!
⚡️Bugun “UMRBOQIY MEROS” O‘zbekiston madaniyati va san’ati targ‘ibot markazi rahbari Lutfia Mirzaeva tavallud topgan kunlari.
📌Ushbu sana munosabati bilan “Hunarmand “uyushmasi rahbariyati va jamoasi nomidan samimiy tabriklaymiz 🌸
📊Lutfia Mirzaeva nafaqat mahalliy, balki xalqaro darajada ham o‘z faoliyati bilan tanilgan, bir qator tashkilotlarda, shu jumladan “Hunarmand”uyushmasida, faoliyat yuritgan va an’anaviy hunarmandlikni rivojlantirishda o‘z hissasini qo‘shgan.
📊U “Umrboqiy Meros” markazi rahbari sifatida bir qator ilmiy va tadqiqot loyihalarida faol ishtirok etdi va milliy an’anaviy hunarmandlikni himoya qilishda ulkan hissa qo‘shdi:
➡️• 2023 yilda “Umrboqiy Meros” nodavlat tashkiloti Xalqaro nominatsiya
✅“Kashtachilik san’ati”ni kengaytirish uchun tarkib tuzdi.
✅Markaz bir qator xalqaro va milliy tadqiqot loyihalarida ishtirok etdi: Sharq yo‘li hunarmand ustaxonalarini o‘rganish, nomoddiy madaniy merosni himoya qilish, kalligrafiya san’ati va Nurat tog‘laridagi petrogliflar haqida kitoblar chop etish.
✅Markaz va Lutfia Mirzaeva jamoasi mahalliy jamiyatlar, yoshlar va turli millat vakillari bilan uzluksiz aloqani ta’minlab, madaniy merosni targ‘ib qilishda muhim rol o‘ynaydi.
✅2025 yil dekabr oyida “Umrboqiy Meros” markazi UNESCOning Nomoddiy madaniy merosni muhofaza qilish Hukumatlararo qo‘mitasida nodavlat tashkilot sifatida akkreditatsiyadan o‘tdi.
📊Bugun biz Lutfia Mirzaevaga yanada ko‘proq ilhom, yangi yutuqlar va baxt-saodat tilaymiz!
🌟
#Tug‘ilganKun #Hunarmand#MadaniyMeros#UmrboqiyMeros#Ilhom
Faсebook|
✅Instagram
✅Youtube |
✅Murojaat yo'lla