如果关闭块之后如何移除未闭合的括号及其内容。例如:
"(eaardf((eaar)(eaar" -> "eaardf((eaar)"
我这样做,但我无法制作正确的正则表达式:
import re
str1 = '(eaardf((eaar)(eaar'
p = re.compile(r'\([a-z)]*.*')
p.sub('', str1)
>>> ''
请帮忙!
答案 0 :(得分:1)
简短的回答:你不能使用Python正则表达式。
DaoWen的评论已经在link中给出了非常详细的解释
中等答案:标准re
模块无法处理递归模式,但Pypi中有一个模块声称能够:regex 2015.03.18:支持递归和重复模式。 - 当心未经测试,因为当事情变得太复杂而无法重新构建一个专用的解析器最终通过PLY这是一个很好的旧lex + yacc的Python实现。