我想编写一个python正则表达式,用字符串“0”替换字符串FARM\u FINGERPRINT()
,以及该方法调用中的任何内容。例如,对于字符串:
s = 'FARM_FINGERPRINT(stuff(more stuff()), even more stuff), another_thing()'
正则表达式应该用'0,another_thing()'
替换它。
我也愿意接受非正则表达式的解决方案。
确定要匹配的字符串的开头和匹配中的第一个括号(因此将p_count
初始化为1
)。逐个字符迭代字符串,为每个打开的括号添加1
到p_count
(为每个关闭的括号从
。当所有打开的括号都已关闭时退出循环。p_count
减去1
)
s = 'FARM_FINGERPRINT(stuff(more stuff()), even more stuff), another_thing()'
start = 'FARM_FINGERPRINT('
p_count = 1
for idx, i in enumerate(s.split('FARM_FINGERPRINT(')[-1]):
if i=='(': p_count+=1
elif i==')': p_count-=1
elif p_count==0: stop = idx; break
string_to_replace = s[:len(start)+stop]
s = s.replace(string_to_replace, '0')
print(s)
输出:
0, another_thing()