问题描述
正如标题所示,我们可以轻松地将正则表达式中的嵌套括号与例如。
(\(((?:[^()]+|(?1))+))
@H_502_4@
,将匹配平衡的括号。
我们如何使用命名的子组,例如在
(?P<key>\(((?:[^()]+|(?\g<key>))+))
@H_502_4@
我不是在寻找解析器解决方案,而是在Python@H_502_4@(
regex@H_502_4@模块)或
PCRE@H_502_4@中寻找上述模式。
解决方法
根据PyPi regex
documentation,命名后向引用语法为
(?&NAME)
查看Python demo:
import regex
print ( regex.sub(r'(?P<key>\((?:[^()]++|(?&key))+\))','','(ab(c)d) a(b()') )
# => a(b()