擅长:python、mysql、java
<p>您可以使用一个简单的<code>stack</code>来代替<code>recursive regex</code></p>
<pre><code>x="[Hello|Hi]. We are [inviting | calling] you at position [[junior| mid junior]|senior] developer.[sd[sd[sd][sd]]]"
l=[]
st=[]
start=None
for i,j in enumerate(x):
if j=='[':
if j not in st:
start = i
st.append(j)
elif j==']':
st.pop()
if not st:
l.append(x[start:i+1])
print l
</code></pre>
<p>输出:<code>['[Hello|Hi]', '[inviting | calling]', '[[junior| mid junior]|senior]', '[sd[sd[sd][sd]]]']</code></p>