Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
☢️Título: Heavenly Delusion — ( Tengoku Daimakyou )
✔️Capítulos: 13
✔️Calidad: #720p
✔️Género: #Aventura#Acción#Drama#Ciencia_Ficción#Seinen
✔️Idioma: #Japonés_Sub_Español🇯🇵
🀄️Sinopsis:
Dentro de la seguridad de los muros, los jóvenes son criados en un entorno de guardería por robots. Aunque la vida allí puede parecer rancia en la superficie, los niños están llenos de potencial y curiosidad. En muchos sentidos, es como un trozo de cielo. El mundo exterior es un infierno. Casi no hay nada mecánico y está habitado por extraños y poderosos seres sobrenaturales. Maru, con la ayuda de Kiruko, está ahí fuera atravesando lo que una vez fue Tokio por el cielo. Pero después de buscar durante tanto tiempo, quizá el cielo sea más un sueño insostenible que una realidad potencial.
⚠️Versión Doblaje Español Latino Aquí 👇
https://t.me/Animes480pFinalizados/23835
📤Apoyame Aquí 👈
@directorioplusultra
☢️Título: Heavenly Delusion — ( Tengoku Daimakyou )
✔️Capítulos: 13
✔️Calidad: #720p
✔️Género: #Aventura#Acción#Drama#Ciencia_Ficción#Seinen
✔️Idioma: #Español_Latino🇲🇽
🀄️Sinopsis:
Dentro de la seguridad de los muros, los jóvenes son criados en un entorno de guardería por robots. Aunque la vida allí puede parecer rancia en la superficie, los niños están llenos de potencial y curiosidad. En muchos sentidos, es como un trozo de cielo. El mundo exterior es un infierno. Casi no hay nada mecánico y está habitado por extraños y poderosos seres sobrenaturales. Maru, con la ayuda de Kiruko, está ahí fuera atravesando lo que una vez fue Tokio por el cielo. Pero después de buscar durante tanto tiempo, quizá el cielo sea más un sueño insostenible que una realidad potencial.
⚠️Versión Subtitulada Aquí 👇
https://t.me/Animes480pFinalizados/23819
📤Apoyame Aquí 👈
@directorioplusultra
☢️Título: Hakozume: Kouban Joshi No Gyakushuu — (Police In A Pod)
✔️Capitulos: 13
✔️Calidad: #720p
✔️Género: #Comedia#Drama#Policial#Seinen#Recuentos_de_la_Vida
✔️Idioma: #Japonés_Sub_Español
🀄️Sinopsis:
La oficial de policía Kawai tenía suficiente de una carrera en la que ni siquiera estaba y estaba a punto de entregar su registro, cuando sucedió lo impensable: ¡conoció a la nueva directora de su estación! Y después de pasar un poco de tiempo con este magnífico modelo a seguir, Kawai se da cuenta de que, después de todo, tal vez no haya terminado de ser oficial.
📤Apoyame Aquí 👈
@Animes480pFinalizados