删除未闭合的括号

时间:2015-04-19 14:57:55

标签: python regex string brackets

如果关闭块之后如何移除未闭合的括号及其内容。例如:

"(eaardf((eaar)(eaar" -> "eaardf((eaar)"

我这样做,但我无法制作正确的正则表达式:

import re
str1 = '(eaardf((eaar)(eaar'
p = re.compile(r'\([a-z)]*.*')
p.sub('', str1)
>>> ''

请帮忙!

1 个答案:

答案 0 :(得分:1)

简短的回答:你不能使用Python正则表达式。

DaoWen的评论已经在link中给出了非常详细的解释

中等答案:标准re模块无法处理递归模式,但Pypi中有一个模块声称能够:regex 2015.03.18支持递归和重复模式。 - 当心未经测试,因为当事情变得太复杂而无法重新构建一个专用的解析器最终通过PLY这是一个很好的旧lex + yacc的Python实现。