Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
#Spiderman🕸
El insider "MyTimeToShineHello" asegura que el plan de Sony es que el SpiderMan de Andrew SI aparezca en 'Spider-Man: Beyond The Spiderverse'
Hace un par de horas se habría filtrado una imagen donde Andrew Garfield presentaba un evento de Across The Spiderverse, así que todo tiene sentido.
@MARVELNOTICIAS📮
#Spiderman🕸
¡DEPENDE SU REGRESO!
En una reciente entrevista, Tom Holland habla sobre su regreso como Spider-Man, declarando que volvería si y solo sí hubiera una buena historia que contar.
“Todo lo que puedo decir es que hemos estado hablando sobre cómo podría verse un cuarto proyecto de mi personaje. Si podemos o no encontrar una manera de hacer justicia al personaje eso es otra cosa".
@MARVELNOTICIAS📮
#Spiderman🕸
Según reporta nuestro querido DanielRPK, Marvel Studios y Sony pictures se andan desgarrando las medias por Spider-Man
Según dice, Sony quiere que Spider-Man 4 tenga toques multiversales para tener referencias y cameos al universo de Sony, y ver a Venom, Morbius y demás personajes, pero Marvel Studios quiere algo más callejero, donde veamos a un Spidey sin tanto desmadre nivel vengadores
¿Quien ganará?
@MARVELNOTICIAS📮
#Spiderman🕸
Según el insider Daniel Richtman, Sony prepara nuevamente una película de "Los 6 Siniestros". Se describe como una cinta tipo Avengers que busca reunir a los personajes principales de sus spin-off de Spiderman.
@MARVELNOTICIAS📮
#Spiderman🕸
Daniel Richtman indica que el más reciente guion de Spiderman 4 tiene un elemento multiversal ya que Sony insiste en que en el filme aparezca un personaje de su universo spin-off. No se sabe aún qué personaje será, pero el cameo sería algo tipo Venom en Spiderman No Way Home.
@MARVELNOTICIAS📮