【发布时间】:2016-09-28 10:38:30
【问题描述】:
当我有这样的字符串时:
s1 = 'stuff(remove_me)'
我可以轻松删除使用中的括号和文本
# returns 'stuff'
res1 = re.sub(r'\([^)]*\)', '', s1)
正如here 解释的那样。
但我有时会遇到这样的嵌套表达式:
s2 = 'stuff(remove(me))'
当我从上面运行命令时,我最终得到了
'stuff)'
我也试过了:
re.sub('\(.*?\)', '', s2)
这给了我相同的输出。
如何删除外括号内的所有内容 - 包括括号本身 - 以便最终得到 'stuff'(应该适用于任意复杂的表达式)?
【问题讨论】:
-
@WiktorStribiżew:谢谢!但那是关于不嵌套的表达式。而且我很确定存在不需要大量 if-else 子句和 for 循环的东西。
-
这个answer 包含您需要的正则表达式,但您需要一个 PyPi 正则表达式模块。
标签: python regex parentheses