Python:查找和替换函数调用

Python:查找和替换函数调用,python,replace,Python,Replace,我想使用python删除文件中出现的所有文本foo(param1,param2) param1和param2仅为示例,它可能在两次出现之间非常频繁 注意:param1和param2可能包含括号。如果foo没有多个签名,一个简单的正则表达式可能会起作用。看看re.sub方法 例如: re.sub('foo\(.+,.+\)', '', line) 将删除以下事件(包括对包含错误语法的foo的调用): 控件+h在windows上被查找和替换。非常确定这在空闲状态下有效您的param1或param2

我想使用python删除文件中出现的所有文本
foo(param1,param2)

param1
param2
仅为示例,它可能在两次出现之间非常频繁


注意:
param1
param2
可能包含括号。

如果
foo
没有多个签名,一个简单的正则表达式可能会起作用。看看
re.sub
方法

例如:

re.sub('foo\(.+,.+\)', '', line)
将删除以下事件(包括对包含错误语法的foo的调用):


控件+h在windows上被查找和替换。非常确定这在空闲状态下有效

您的
param1
param2
是否可以包含成对的括号?例如,
foo((1+2),bar())
?如果是这样,那么简单的文本替换和正则表达式都不会对您有所帮助。搜索
foo(
并扫描结束参数,使用堆栈保持打开/关闭参数的平衡。谢谢。
foo(bar(num1,num2),param2)
?@Subway是的,也将匹配。如果
foo(bar(num1,num2),param2)
,则仅
foo(bar(num1,num2)
将被删除。这很奇怪-它在Python 2.7.6控制台中对我有效:
>re.sub('foo\(.+,.+\),'','foo(bar(num1,num2),param2)
'
foo(a, b)
foo([a], b)
foo([a b c], d)   # note, bad syntax