我有这个字符串-[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}']