Python 2.7 匹配封闭字符
所以我试着以某种方式拆分字符。 如果我提供此字符串: text(text(adsf(asdfasdfjkl)asdfjlkasdjf)stuff)(morestuff stuff) 我想把它分成: ['text','(text(adsf(asdfasdfjkl)asdfjlkasdjf)stuff)',(morestuff stuff)] 我的代码是:Python 2.7 匹配封闭字符,python-2.7,Python 2.7,所以我试着以某种方式拆分字符。 如果我提供此字符串: text(text(adsf(asdfasdfjkl)asdfjlkasdjf)stuff)(morestuff stuff) 我想把它分成: ['text','(text(adsf(asdfasdfjkl)asdfjlkasdjf)stuff)',(morestuff stuff)] 我的代码是: def pair_char(left, right, start, text, exclusive=False, verbose=False):
def pair_char(left, right, start, text, exclusive=False, verbose=False):
package = []
for e, c in enumerate(text):
left_c = right_c = 0
if text[e] == left:
left_c += 1
marker = start = e
while text[marker+1] != right or left_c > right_c:
marker += 1
if verbose:
print left_c, right_c, text[marker], left, right, text[marker]==left, text[marker]==right
if marker+1 >= len(text):
break
if text[marker] == left_c:
print "left_c"
left_c += 1
if text[marker] == right_c:
print "right_c"
right_c += 1
end = marker
if exclusive:
package.append(text[start+1:end])
else:
package.append(text[start:end+1])
e = end
package = "".join(package)
return package
有什么建议吗?您为此编写了代码吗?是的,但它工作不正常,它将同一序列拆分多次。例如:与其使用“(adsf(asdfasdfjkl)asdfjlkasdfj)stff),“它将输出”(adsf(asdfasdfjkl)asdfjlkasdfj)stff),“(asdfasdfjkl)”等@khudermSo您想要在同一级别上分割括号表达式吗?最好是在您的问题中包含您尝试的任何内容,这样会有很多人来帮助您。否则,人们会将其视为希望由他人完成工作的人。这很可能就是为什么有人投了反对票。好吧,我更新了@khuderm。你为此编写了代码吗?是的,但它工作不正常,它多次拆分同一序列。例如:与其使用“(adsf(asdfasdfjkl)asdfjlkasdfj)stff),“它将输出”(adsf(asdfasdfjkl)asdfjlkasdfj)stff),“(asdfasdfjkl)”等@khudermSo您想要在同一级别上分割括号表达式吗?最好是在您的问题中包含您尝试的任何内容,这样会有很多人来帮助您。否则,人们会将其视为希望由他人完成工作的人。这就是为什么有人投了反对票。好吧,我更新了@khuderm。