Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
#продажа#П460⤴️⤴️⤴️
В этой крошке — всё как в сказке! Феи-крёстные позаботились обо всем! 🧚🏻♀️
Утром, с первыми лучами солнца, пернатые птички-подружки 🕊️ помогают собираться на работу: одна укладывает волосы, вторая наносит макияж 💋
Оленёнок на кухне уже приготовил ароматный кофе ☕️, а цветущий сад-гардероб уже придумал сегодняшний образ!
Не жизнь, а сказка про Белоснежку и семь гномов 👸🏼
🍋10,5 млн 9 млн
📐 29 м²
🪜 этаж 5 из 5
📍Железноводская, 21
📲 На связи собственник Дарья @dakosd
👩🏻🎨 Дизайнер Елена Вертий @elena_verty*
*запретграм, нужен вэпээн
**больше фото и план в комментариях ⤵️
Нестыдные | Петербург.
Подписаться
#продажа#П460⤴️⤴️⤴️
#сновавнестыдных
⛔️⛔️⛔️ПРОДАНА ⛔️⛔️⛔️
В этой крошке — всё как в сказке! Феи-крёстные позаботились обо всем! 🧚🏻♀️
Утром, с первыми лучами солнца, пернатые птички-подружки 🕊️ помогают собираться на работу: одна укладывает волосы, вторая наносит макияж 💋
Оленёнок на кухне уже приготовил ароматный кофе ☕️, а цветущий сад-гардероб уже придумал сегодняшний образ!
Не жизнь, а сказка про Белоснежку и семь гномов 👸🏼
🍋 8,2 млн
📐 29 м²
🪜 этаж 5 из 5
📍Железноводская, 21
📲 На связи собственник Дарья @dakosd
👩🏻🎨 Дизайнер Елена Вертий @elena_verty*
*запретграм, нужен вэпээн
**больше фото и план в комментариях ⤵️
Нестыдные | Петербург.
Подписаться
💥 АКТУАЛЬНОСТИ ПОСТ | ПРОДАЖА 💥
#П369
13.7 млн 13 млн
Туристская, 10к1
#П431
12,7 млн 12,5 млн
Проспект Королёва, 21к1
#П456
22 млн 21,9 млн
Белоостровская, 10к2
#П458
14 млн 13,5 млн
Шевченко, 11
#П460
10,5 млн 9 млн
Железноводская, 21
#П463
21,25 млн 20,75 млн
Вадима Шефнера, 12к1
#П457
29,9 млн 29,5 млн
Петровский проспект, 28к1
#П462
22,5 млн 21 млн
Магнитогорская, 3к2
#П451
22,8 млн
Лабутина, 3
#П455
43,3 млн
Наличная, 26к4
Если на канале выходила публикация с вашей квартирой в продажу и она сейчас актуальна — напишите в таком же формате* короткое сообщение в комментариях к этому посту ⤵️
- номер объявления (хэштег)
- адрес
- стоимость
Нестыдные | Петербург.
Подписаться