Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
🫧Армия США расследует полёты «Апачей» над домом Кид Рока
📌Армия США начала расследование после того, как боевые вертолёты AH-64D Apache из 101-й бригады были сняты на видео кружащими над домом музыканта Кид Рока в Нэшвилле и летающими на низкой высоте возле протестующих в Кларксвилле. По документам вертолёты должны были выполнять учебный полёт
🔵Представитель армии заявил, что это не было санкционированным мероприятием и вертолёты не назначались для наблюдения за демонстрациями. Проводится административная проверка соблюдения правил полётов и требований воздушного пространства
⬅️Обещают принять меры в случае выявления нарушений
Лёгкое небо
#aviation#news#США#Apache
✅ Завтра
Основы In-Memory Computing для архитекторов и разработчиков. Часть 1
📅 28 февраля / 19:00 (время МСК) / онлайн
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/h2Yvvo
Денис Магда, Apache Ignite PMC Chair и директор по продукту в GridGain, расскажет об основных возможностях и компонентах In-Memory Computing решений на примере Apache Ignite. Вебинар совмещает теорию и практику, после него участники смогут проектировать и писать код под подобные системы.
На конкретных примерах кода вы узнаете про:
~ Конфигурацию и запуск кластеров;
~ Обработку данных с использованием key-value API;
~ Оптимальную обработку данных с помощью распределенного SQL.
🔗 Программа: https://goo.gl/h2Yvvo
#apache#ApacheIgnite#онлайн#online
✅ Через неделю
Основы In-Memory Computing для архитекторов и разработчиков. Часть 1
📅 28 февраля / 19:00 (время МСК) / онлайн
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/AgNpma
Денис Магда, Apache Ignite PMC Chair и директор по продукту в GridGain, расскажет об основных возможностях и компонентах In-Memory Computing решений на примере Apache Ignite. Вебинар совмещает теорию и практику, после него участники смогут проектировать и писать код под подобные системы.
На конкретных примерах кода вы узнаете про:
~ Конфигурацию и запуск кластеров;
~ Обработку данных с использованием key-value API;
~ Оптимальную обработку данных с помощью распределенного SQL.
🔗 Программа: https://goo.gl/AgNpma
#apache#ApacheIgnite#онлайн#online
✅ Через неделю
✅ ANDROID MEETUP
📅 29 марта / 19:00–21:00 (время ЕКБ, МСК+2) / Екатеринбург, пер. Химков, 3, коворкинг Соль
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/TyRRL6
Приглашаем вас к нам на митап, чтобы пообщаться, поделиться опытом и рассказать с какими задачами мы сталкиваемся, какие технологии используем и ,конечно, перетереть косточки Kotlin
🔗 Программа: https://goo.gl/TyRRL6
#android#Kotlin#Екатеринбург
✅ Epic Growth Conference
📅 29 марта / 14:00–22:00 (время МСК) / Москва, ул. 3-я Ямского Поля, 15
💵 Платно
📝 Регистрация тут: https://goo.gl/WEVQ6a
29 марта в Москве Mobio и Getloyal при поддержке партнеров организуют конференцию по продуктовому маркетингу Epic Growth Conference.
🔗 Программа: https://goo.gl/WEVQ6a
#marketing#productivity#маркетинг#продукт#Москва
✅ Apache® Ignite™ Meetup #1
📅 29 марта / 19:00–22:00 (время МСК) / Санкт-Петербург, Невский проспект 35
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/xsnDmZ
Встреча для архитекторов и разработчиков, которые интересуются In-Memory решениями, в том числе open-source платформой Apache Ignite.
🔗 Программа: https://goo.gl/xsnDmZ
#Apache#backend#СанктПетербург