|
abc="[abc [d1 e] [f2 [g h3] i4]]"
def split_1 (ln):
if ln.startswith('['):
ln=ln.lstrip('['); ln=ln.rstrip(']')
ln=ln.replace('[',' [')
ln=ln.replace(']','] ')
ws=ln.split(); ws.reverse()
os,n,ns = [],0,[]
while ws :
w = ws.pop()
if '[' in w: n+=1
if n : ns.append(w);
else : os.append(w)
if ']' in w:
n-=1
if n==0: os.append(' '.join(ns)); ns=[]
if len(ns): os.append(' '.join(ns))
return os
Parentheses are smooth and curved ( ), brackets are square [ ], and braces are curly { }. |
|