基本上我有一个类似下面的文件......我需要使用正则表达式从每个块中获取名称和年份到字典
....
....
....
* name: (name1) *
* ... *
* ... *
* year: (year1) *
....
....
....
* name: (name2) *
* ... *
* ... *
* year: (year2) *
....
....
....
* name: (name3) *
* ... *
* ... *
* year: (year3) *
需要:
{'name1':'year1','name2':'year2','name3':'year3'}
答案 0 :(得分:1)
尝试下面的regex,返回匹配的组并手动形成预期的输出。
/name:\s*\(([^)]*)\)|year:\s*\(([^)]*)\)/g
以下Online Demo来检查匹配的群组。
这个正则表达式组在(
之后发现)
之前的所有内容。
答案 1 :(得分:1)
您可以使用以下正则表达式。
>>> import re
>>> regex = re.compile(r'(?s)name:\s*\((\w+)\).*?year:\s*\((\w+)\)')
>>> mydict = dict(re.findall(regex, data))