正则表达式匹配数据数字加中文

str=3-7周,12-13周,17周
想转换成[{start:3,end:7},{start:12,end:13},{start:17,end:17}]
应该怎么做

有帮助望采纳

import re
str1='3-7周,12-13周,17周'
pattern = re.compile('(^|,)([\d]+)(-([\d]+))?周')
results = pattern.findall(str1)
print(results)
result_list =[]
for result in results:
    result_list.append('{'+f'start:{result[1]},end:{result[3] if result[3] else result[1]}'+'}')
print(result_list)