Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
¡Ya llegó la hora de El Doble!
Primero que todo escucha nuestra entrada distintiva y no olvides comentarnos qué te pareció. 💬
📣 En este episodio conversaremos con dos estudiantes fundadoras de #Avizor, un proyecto de comunicación que apuesta por visibilizar tabúes, problemáticas sociales y de género.
🗣 El Anteproyecto del Código de las Familias y sus temas más sensibles también entrarán a debate.
Sin más, ¡disfruta tu ración! 😉
⬇️ (#Descarga gratis desde esta nube con la contraseña ElDoble3)
¿Que puede hacer este bot?
@ytsongdl_bot
Descarga música enviando el nombre o el enlace de una canción
Idioma: inglés
(Visto en @botsgram_cu)
#música#descarga
¿Que puede hacer este bot?
@freemusicprobot
El bot encontrará música por su solicitud, por el nombre de la canción o artista.
También funciona inline.
Idiomas: inglés, ruso
(Visto en @botsgram_cu)
#música#descarga
¿Que puede hacer este bot?
@WebSnatchBot
Este bot le permite descargar videos de alta calidad de más de mil sitios compatibles. ¡Simplemente envíele un enlace de video y observe cómo sucede la magia!
Idioma: inglés
(Visto en @botsgram_cu)
#videos#descarga
¿Que puede hacer este bot?
@DirectFileLinkBot
Este bot genera un enlace de descarga directa de archivos de Telegram.
Idiomas: inglés
(Visto en @botsgram_cu)
#enlaces#descarga
¿Que puede hacer este bot?
@FileSharerRobot
Este bot puede ayudarlo a crear un enlace para compartir archivos de Telegram
Idiomas: inglés
(Visto en @botsgram_cu)
#enlaces#descarga
¿Que puede hacer este bot?
@Qualyuploadbot
Envíe cualquier enlace URL de descarga directa, y el bot subirá a telegram como archivo / video
Idiomas: inglés
(visto en @botsgram_cu)
#enlaces#descarga
¿Que puede hacer este bot?
@torrentDxBoT
Este bot te ayudará a buscar y descargar contenido de torrent
Idiomas: inglés
(Visto en @botsgram_cu)
#torrent#descarga
¿Que puede hacer este bot?
@leoanydlbot
Con este bot puedes descargar videos de varias fuentes
Idiomas: inglés
(Visto en @botsgram_cu)
#enlaces#descarga#videos
¿Que puede hacer este bot?
@TGYouTube_Bot
Este bot puede convertir el enlace de Youtube a video / archivo y MP3 con soporte de miniaturas personalizadas
Idiomas: inglés
(Visto en @botsgram_cu)
#descarga#enlaces#youtube
¿Que puede hacer este bot?
@GetImageUrlBot
Este bot cargará una foto en un sitio y le devolverá el enlace listo para enviar desde cualquier lugar
Idiomas: italiano
(visto en @botsgram_cu)
#fotos#enlaces#descarga
¿Que puede hacer este bot?
@TiktokDl_Robot
Descargue videos originales de tiktok fácilmente.
Idiomas: inglés
(visto en @botsgram_cu)
#tiktok#descarga#videos