如标题所示,我们可以轻松地将正则表达式中的嵌套括号与 eg 匹配
(\(((?:[^()]+|(?1))+))
这将匹配平衡的括号。
我们如何使用命名子组,例如
(?P<key>\(((?:[^()]+|(?\g<key>))+))
我不是在寻找解析器解决方案或任何东西,而是在Python
( regex
module) 或PCRE
.
如标题所示,我们可以轻松地将正则表达式中的嵌套括号与 eg 匹配
(\(((?:[^()]+|(?1))+))
这将匹配平衡的括号。
我们如何使用命名子组,例如
(?P<key>\(((?:[^()]+|(?\g<key>))+))
我不是在寻找解析器解决方案或任何东西,而是在Python
( regex
module) 或PCRE
.
根据PyPiregex
文档,命名的反向引用语法是
(?&NAME)
查看Python 演示:
import regex
print ( regex.sub(r'(?P<key>\((?:[^()]++|(?&key))+\))', '', '(ab(c)d) a(b()') )
# => a(b()