在Python中查找最短的正则表达式匹配

时间:2016-04-20 22:13:25

标签: python regex

我想处理一个像(a (b) c)这样的字符串,我希望在处理外部parens之前先匹配内部(b)。但是,此代码不起作用:

>>> x='(a(b)c)'
>>> re.search(r"\((.*?)\)", x).group(1)
'a(b'

有没有办法让Python找到最小匹配(即b)而不是更长的匹配a(b

1 个答案:

答案 0 :(得分:3)

XY问题。您无法处理最小匹配。你能做的就是找一个没有括号的比赛。

r"\(([^()]*)\)"