Re.sub regex删除嵌套括号python

Re.sub regex删除嵌套括号python,python,regex,Python,Regex,我有一个字符串,我想在python中使用正则表达式替换来删除大括号的内容,除了位于字符之后和字符之前的括号内的任何数字(在下面的示例中为3)以及完全由字母组成的圆括号内的任何文本。(“以下示例中的信息”) 我把这些放在一起解决了第一个问题,但它不起作用(我是regex的绝对初学者) 理想输出应为: Name, Other "Else" (2000) (3) 感谢您的帮助尝试以下方法: re.sub(r'\(\d*\D+\d*\)\s+','',re.sub(r'\{.+?\#(\d+)\.\d

我有一个字符串,我想在python中使用正则表达式替换来删除大括号的内容,除了位于
字符之后和
字符之前的括号内的任何数字(在下面的示例中为3)以及完全由字母组成的圆括号内的任何文本。(“以下示例中的信息”)

我把这些放在一起解决了第一个问题,但它不起作用(我是regex的绝对初学者)

理想输出应为:

Name, Other "Else" (2000) (3)
感谢您的帮助

尝试以下方法:

re.sub(r'\(\d*\D+\d*\)\s+','',re.sub(r'\{.+?\#(\d+)\.\d+\)}',r'(\1)',s))
这样做的目的是匹配大括号内的数字,然后使用捕获(括号内的部分)获得所需的字符串


旁注:最好不要使用字符串作为变量的名称,因为这可能与“字符串”模块冲突。

是否有一些原因导致输出中没有包含
(info)
。“info”在圆括号内,但由于它不是数字,因此应该删除。在您的问题中,可能值得一提。谢谢,它适用于大括号部分:)…如果不是完全由数字组成,我如何删除大括号的内容(使用单独正则表达式的解决方案很好)?尝试新版本。就像斯莱特说的,把这句话加到你的问题上。谢谢,对不起
re.sub(r'\(\d*\D+\d*\)\s+','',re.sub(r'\{.+?\#(\d+)\.\d+\)}',r'(\1)',s))