Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
¿Quién se cree? 🤬
🔴#LillyTéllez primero pide que atrapen a los criminales y ahora que no se extraditen 🙄 | La incongruencia y lo vendepatrias son el sello del #PRIAN❌🤢
https://sinlineamx.com/lilly-tellez-pide-milei-no-extraditar-fernando-farias/
¡Ahora resulta! 🙄
🔴El #PRIAN coincidió en que #DosBocas es un proyecto caro, opaco y peligroso 🛢️👎
https://revistaelpolitico.com/nacional/diputados-del-pri-pan-exigen-cuentas-por-dos-bocas/
Tantas lenguas en el mundo y #Noroña decidió hablar con la verdad 🙌🏻
🔴 Aunque el #PRIAN quiera hacer comparaciones sin pruebas, la realidad es que están defendiendo una violación a la #Constitución😡
¡Son lo mismo! 😳
🔴#EpigmenioIbarra señaló que una intervención en #México sería favorable tanto para #Trump como para el #PRIAN en su lucha por sobrevivir en las elecciones 🗳️ | ¿Qué opinas? 👇🏻
La medicina del #PRIAN👀
🔴#ManuelHuerta aseguró que la oposición le teme a los cambios de la #4T que responden a la decisión del pueblo 🔥‼️
https://sinlineamx.com/senador-se-burla-oposicion-con-postal-sheinbaum-y-amlo/
¡Ningún 🌶️ les embona!
🔴#DamiánAlcázar acabó con el #PRIAN ante sus desesperados intentos por desacreditar a #México como anfitrión del #Mundial🙄🏟️⚽
https://sinlineamx.com/damian-alcazar-reconoce-remodelacion-estadio-banorte/
¿Desesperación? ¡Para nada! 😂
La oposición mexicana estrena "refuerzo" de lujo. Isabel Ayuso llega con la tarea hecha y el PRIAN la recibe con los brazos abiertos (y los gritos de ¡Viva España!). Salinas Pliego ya está listo para pasar el reporte en TV Azteca.
El "equipo de ensueño" de la oposición (Salinas Pliego, Alito Moreno, Jorge Romero, Lilly Téllez y Felipe Calderón) ya tiene nuevos libretos que leer. ¡Qué bonita familia! 🤡
#SinLínea#AyusoEnMéxico#PRIAN#ClaudiaSheinbaum
Se hacen los que no ven 🙄
🔴 El #PRIAN jura que con #AMLO aumentó más la gasolina, pero la realidad en las variaciones al final de cada sexenio dice otra cosa 📈😡👎🏻
#Gasolina#PRIAN#PrecioGasolina#GasolinaAMLO#GasolinaPeñaNieto#GasolinaVicenteFox#GasolinaCalderón