Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
Я очень соскучилась по командировкам! Так соскучилась, что готовлюсь к предстоящей поездке, как к празднику! А если праздник, нужен новый наряд😂 Я женщина, мне можно😁В путь дорогу собирала образы в
https://t.me/nelvamoda_ru
Совсем недавно наткнулась на этот белорусский бренд ,кстати, на Белорусской! Увидела платье на девушке, догнала и не постеснялась спросить, где такую красоту приобрести! Спасибо за подсказку🥰В рабочие поездки я всегда беру чуть побольше одежды! Это действительно важно, поскольку с утра я обычно выбираю лёгкие фасоны ,в обед что-то деловое, а на ужин более женственное, но надо учитывать, что лето везде разное ,поэтому беру с собой всё на всякий случай! Скоро Премьера в театре, новый проект в кино, новая роль, новые наряды -я готова! И, конечно, делитесь ,какой у Вас подход к сбору вещей в поездки? Без чего никогда не обходитесь? Может, я тоже возьму на вооружение 🤗
#streetfashion#worktrip#nelvamoda#womenswear#лето#summervibes#moodoftheday#video#womenstyle#petitefashion
К Новому году готова! Если Вы ещё себя не нарядили к праздникам, то обязательно заглядывайте в магазинчик @nelvamoda✨
От меня и магазина Вам в подарок промокод на разовую покупку - "MIRO30" .
💫Скидка по промокоду 30% на весь ассортимент интернет-магазина и обычного по 31.12 (включительно).
И внимание💡Обязательное условие - прохождение регистрации личного кабинета на сайте интернет-магазина nelvamoda.ru (ссылку прикреплю в сторис) 🌟
Всем приятных покупок, обновок, отличного настроения, вдохновения и с наступающими праздниками Вас Дорогие Подписчики✨
#newyear#праздничныеплатья#nelvamoda#womenswear#обновки#всемприятныхвыходных#зима#winter#winterfashion#moodoftheday#lady#подаркинановыйгод#womenstyle#petitefashion#petitefemme#mira#noel#christmas#снаступающим
Какая Москва красивая зимой!💙 Какая я красивая зимой в Москве😂 Девочки, обязательно наряжайтесь, даже в холодную погоду можно придумать очень женственные образы, которые только подчеркнут Вашу яркость✨ Удалось уделить себе пару дней, сходить за покупками в @milnali_ru сразу в них нарядиться , и прогуляться по городу!✨ Девочки,как Вам? 1 или 2? Мальчики, что Вашему сердцу и глазу близко? 😉
#скороновыйгод#праздник#зима#женскаяодежда#womenfashion#winter#streetstyle#leo#blue#holidays#milnali#womenswear#actress#actrice#lady#model#furcoat#coat#вседеловшляпе#mademoiselle#petitefemme#mira#promenade#loveisintheair#purelove#heavenonearth#inthecity