我有一个表达式如下:这个表达式可以重复多次。
period={p1:{R:{M:'-1'}},p2:{R:{D:{start:'-28',end:'-1'}}
在python 3中,我编写了以下代码:
RE_DAY_END = re.compile(r'(D:{start:\'-\d+\'\,end:\')+(?P<dend>\-[0-9]+)')
match_day= RE_DAY_END.findall(x)
print(match_day)
当我期望获得其他结果时,我无法动摇我正在获得此输出的内容:
I am not interested: [("D:{start:'-28',end:'", '-1')]
I need this one: [("D:{start:'-28',end:'-1')]
为了得到第二个结果,我应该做些什么改变?
答案 0 :(得分:1)
提取单个子串(re.search()
函数)的简单方法:
s = "period={p1:{R:{M:'-1'}},p2:{R:{D:{start:'-28',end:'-1'}}"
result = re.search(r'D:\{[^{}]+\}', s).group()
print(result)
输出:
D:{start:'-28',end:'-1'}