当我有这样的字符串时:
s1 = 'stuff(remove_me)'
我可以轻松删除括号和使用中的文本
# returns 'stuff'
res1 = re.sub(r'\([^)]*\)', '', s1)
如这里所解释。
但是我有时会遇到这样的嵌套表达式:
s2 = 'stuff(remove(me))'
当我从上面运行命令时,我最终得到
'stuff)'
我也尝试过:
re.sub('\(.*?\)', '', s2)
这给了我相同的输出。
如何删除外部括号内的所有内容(包括括号本身),以便最终得到结果'stuff'
(对于任意复杂的表达式也应如此)?
re
匹配非常迫切,因此它们尝试匹配尽可能多的文本,对于您提到的简单测试用例,只需运行regex:
>>> re.sub(r'\(.*\)', '', 'stuff(remove(me))')
'stuff'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句