不完全匹配我的正则表达式与python3中的期望结果

时间:2017-08-17 09:33:53

标签: python regex

我有一个表达式如下:这个表达式可以重复多次。

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')]

为了得到第二个结果,我应该做些什么改变?

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'}