标签: python regex
我想处理一个像(a (b) c)这样的字符串,我希望在处理外部parens之前先匹配内部(b)。但是,此代码不起作用:
(a (b) c)
(b)
>>> x='(a(b)c)' >>> re.search(r"\((.*?)\)", x).group(1) 'a(b'
有没有办法让Python找到最小匹配(即b)而不是更长的匹配a(b?
b
a(b
答案 0 :(得分:3)
XY问题。您无法处理最小匹配。你能做的就是找一个没有括号的比赛。
r"\(([^()]*)\)"