我有这个字符串-[1]{a,b} xxx [3] [4]{e,f}

我想赶上[1]{a,b}[4]{e,f}以及所有其他[.*]{.*}

尝试\[.*?\](?!\[)\{.*?\}时得到[1]{a,b}[3] [4]{e,f}

我正在使用Python 2.7

前瞻有什么问题?我指定不包含[字符...
是否可以不提前解决?

最佳答案

您需要使用否定的字符类,而不是.*

>>> s= "[1]{a,b} xxx [3] [4]{e,f}"
>>>
>>> import re

>>> re.findall(r'\[[^]]*\]\{[^}]*\}',s)
['[1]{a,b}', '[4]{e,f}']

10-07 22:51