Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
Review of Glutinous Rice Ball Workshops and Tea Parties in Aberdeen & Glasgow
花崗岩城與格拉斯哥湯圓製作工作坊及茶聚 回顧
#花崗岩城#Aberdeen 與 #格拉斯哥#Glasgow 湯圓製作工作坊及茶敘,旨在讓參加者有機會了解香港的冬季節日文化,以及自製糯米 湯圓。這是Mission Perm計劃在 Aberdeen舉辦的首次面對面活動⋯⋯使新到埗港人有更多社群參與,讓他們進一步融入社區。兩場活動都有多位蘇格蘭本地非華裔人士參與,活動讓他們了解香港節慶文化。促進香港人和蘇格蘭人之間的文化互動⋯⋯
⋯⋯以上應該係我哋2023年最後嘅實體活動。祝大家冬至平安、#聖誕快樂 同 #新年快樂!
Glutinous Rice Ball Workshops and Tea Parties in Aberdeen & Glasgow, which aimed to offer participants a chance to learn about the Winter festival culture of Hong Kong, and homemade glutinous rice ball. This is the first in-person activity occurring in Aberdeen. In both sessions, there were several native Scots to join and learn about Hong Kong Festival Culture. It enhanced the cultural diversity and interaction between Hongkongers and Scots.
These should be our last physical activities in 2023. We wish you all a safe winter solstice, a merry Christmas and a happy New Year!
閱讀報告全文,
請訂閱Patreon,同時請支持我哋日常運作!
https://www.patreon.com/posts/94874815
Thanks to the Govan & Linthouse Parish Church for co-organising this event.
特別鳴謝Govan & Linthouse Parish Church協辦是次活動。
假如身在蘇格蘭嘅你錯過咗 呢次活動,請唔使失望,我哋喺1月、2月分別有香港開埠紀念同農曆新年節慶活動!歡迎留言或者inbox同我哋講你所在嘅城市,讓我哋更能夠掌握大家參與活動嘅意向!
—
單次捐款支持我哋
https://thehongkongscots.sumupstore.com
喺蘇格蘭,有嘢要搵我哋幫手?即填:
https://forms.gle/n8cSUkW2HS19BRVg7
想同我哋並肩作戰,參與我哋日常運作?
Get Involved!
https://forms.gle/HCvXDXrpUMa2TtwB9