Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
Startaplar dunyosida tabiiy saralash qanday ishlaydi?
Bu borada Datasite, KPI.com va Zip24 Tech startaplari asoschisi, tajribali serial texnologik tadbirkorMuzaffar Karabayev o‘z fikrlari bilan bo‘lishdi.
Startaplar dunyosida har bir loyiha raqobatga duch keladi. Har 10 startapdan faqat 3 tasi eng yaxshi rejaga ega bo‘lib, haqiqiy muvaffaqiyat sari yo‘l oladi, 5 tasi esa yopilib ketishi mumkin.
Startaplar haqida ko‘proq bilish uchun bizni kuzatib boring!
__
How does natural selection work in the startup world?
Muzaffar Karabayev — founder of Datasite, KPI.com, and Zip24 Tech, and an experienced serial tech entrepreneur — shared his insights on this topic.
In the startup ecosystem, every project faces competition. Out of every 10 startups, only 3 have the strongest strategy and move toward real success, while 5 may eventually shut down.
Follow us to learn more about startups!
#StartupInsights#FounderTalk
@startupbaseuz
"Startup" nima?
Muammoni hal qilish bu shunchaki g‘oya emas, to‘g‘ri, arzon, qulay va tez yechim berishdir.
Startaplar haqida ko‘proq bilish uchun bizni kuzatib boring!
—
What is a “startup”?
Solving a problem is not just about having an idea — it’s about delivering the right, affordable, convenient, and fast solution.
Follow us to learn more about startups!
#StartupInsights#FounderTalk
@startupbaseuz
"Startup" nima?
Muammoni hal qilish bu shunchaki g‘oya emas, to‘g‘ri, arzon, qulay va tez yechim berishdir.
Startaplar haqida ko‘proq bilish uchun bizni kuzatib boring!
—
What is a “startup”?
Solving a problem is not just about having an idea — it’s about delivering the right, affordable, convenient, and fast solution.
Follow us to learn more about startups!
#StartupInsights#FounderTalk
@startupbaseuz