擅长:python、mysql、java
<p>您可以尝试使用交替,只对不匹配大括号的分支进行分组。它将返回带空白字符串的结果,您可以筛选出这些字符串,例如:</p>
<pre><code>>>> import re
>>> s = r'''%album_artist%/%album%{ (%year%)}/{%track_number%. }%track_artist% - %title%'''
>>> list(filter(lambda e: e.strip(), re.findall(r'\{[^}]*\}|%([^%]*)%', s)))
['album_artist', 'album', 'track_artist', 'title']
</code></pre>