python中的递归正则表达式?

时间:2014-04-20 14:49:24

标签: python regex recursion

我有字符串:

acd (e(fg)h) ij)

我需要删除已打开且相应的封闭括号内的文本。所以在示例中我需要删除

(e(fg)h)

结果我想要

acd del ij)

我尝试使用下一个代码:

re.sub(r'\((((?>[^()]+)|(?R))*)\)', r'del', 'acd (e(fg)h) ij)')

但是python说:

sre_constants.error: unexpected end of pattern

1 个答案:

答案 0 :(得分:3)

谢谢Jerry和devnull! 用于python的正则表达式模块而非默认重新模块解决了我的问题

import regex
>>> regex.sub(r'\((((?>[^()]+)|(?R))*)\)', r'del', 'acd (e(fg)h) ij)')
'acd del ij)'