我有这个字符串 - [1]{a,b} xxx [3] [4]{e,f}
我想抓住[1]{a,b}
和[4]{e,f}
以及所有其他[.*]{.*}
尝试\[.*?\](?!\[)\{.*?\}
时,我得到[1]{a,b}
和[3] [4]{e,f}
我正在使用Python 2.7
前瞻有什么问题?我指定不包含[
字符......
没有预见就能解决吗?
答案 0 :(得分:2)
您需要使用否定的字符类,而不是.*
:
>>> s= "[1]{a,b} xxx [3] [4]{e,f}"
>>>
>>> import re
>>> re.findall(r'\[[^]]*\]\{[^}]*\}',s)
['[1]{a,b}', '[4]{e,f}']