我有字符串:
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
答案 0 :(得分:3)
谢谢Jerry和devnull! 用于python的正则表达式模块而非默认重新模块解决了我的问题
import regex
>>> regex.sub(r'\((((?>[^()]+)|(?R))*)\)', r'del', 'acd (e(fg)h) ij)')
'acd del ij)'