如何在关闭 block 后删除未关闭的括号及其内容。例如:
"(eaardf((eaar)(eaar" -> "eaardf((eaar)"
我这样做了,但我无法做出正确的正则表达式:
import re
str1 = '(eaardf((eaar)(eaar'
p = re.compile(r'\([a-z)]*.*')
p.sub('', str1)
>>> ''
请帮忙!
最佳答案
简短回答:您不能使用 Python 正则表达式。
对此 link 中已经给出了非常详细的解释由道文的评论给出
中等答案:标准的 re
模块无法处理递归模式,但 Pypi 中有一个模块声称能够:regex 2015.03.18 : 支持递归和重复模式。 - 小心未经测试,因为当事情变得太复杂时,我更喜欢最终通过 PLY 构建专用解析器这是旧的 lex+yacc 的 Python 实现。
关于python - 删除未闭合的括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29731531/