Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
Als een lokale partij dit mobilisatievermogen heeft, kan zij een eigen militie (paramilitaire organisatie) hebben die haar idealen deelt en onafhankelijk is van het reguliere staatsleger.
地方政黨有這種動員能力,它就可以擁有自己的民兵(準軍事組織),與其有共同意識形態,並且可以獨立於正規國家軍隊。
#Hezbollah
Although there are 4 days left until the funeral and burial of Hezbollah Secretary General Seyyed Hassan Nasrallah and Seyyed Hashem Safi al-Din, the Zionist network claims that it is not known whether Seyyed Hassan has died!
Despite senior Hezbollah officials and Seyyed's children confirming that they have seen his body, the Israeli regime has periodically claimed that he is alive. Their goal is to reduce the number of people attending the ceremony.
The Zionists are actively trying to prevent people from coming, especially from abroad. They are even afraid of his body.
#Hezbollah
Nieuws :
Hezbollah plaatsvervangend leider : Vanaf nu zal Hezbollah elk punt in Israël aanvallen, inclusief Tel Aviv. Als de oorlog doorgaat, zullen onbewoonde nederzettingen in het noorden toenemen en zullen meer dan twee miljoen Israëliërs gevaar lopen.
#Hezbollah