python - 删除未闭合的括号

标签 python regex string brackets

如何在关闭 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/

相关文章:

java - 星号字母错误对齐java

string - 如何使用纯 Swift 删除 String 中的空格?

python - 如何从Scrapy获取已经抓取的URL数量(request_count)?

python - 有哪些适合 Python 新手(但不是编程新手)开发人员的好项目?

python - 在 python 中将图形导出为 graphml

python - 正则表达式匹配Python中的重复组

java - fatal error : Invalid Layout of java. lang.String 在值

python - 如何屏蔽索引小于某个值的数组

javascript - 使用 Javascript/Typescript 防止 html 注入(inject)

c# - 为什么超出范围的索引不会为 Regex GroupCollection 抛出异常?