使用正则表达式删除括号中任何内容的多次出现

时间:2018-12-19 22:00:44

标签: python regex python-3.x

我在Pandas test中有一个数据列,该列的列为Column1,在任何有括号的情况下,我都希望删除括号和括号之间的字符。到目前为止,我有:

test['Column1'].str.replace(r"\([^()]*\)","")

这仅用于删除单个括号。如何扩展替换以删除所有括号?

2 个答案:

答案 0 :(得分:2)

这可能是不可能的。考虑到python不支持recursive regular expressions。给定平衡括号是一种形式的递归匹配问题。最好的办法是假设括号是平衡的,并且将第一个括号与最后一个括号匹配。您可以简单地编写一个函数来处理此问题。

答案 1 :(得分:0)

str.replace替换所有出现的内容。尽管python不支持递归正则表达式,但在这种情况下,字符串替换可解决多次出现的问题。