根据原始内容用字符串替换字符串

replace string with string based on the origin content

我需要用 param

替换 macro(param)
mystring = "function(macro(param)) { a = call(1)};"

我的目标是

"function(param) { a = call(1)};"

参数是可变的,它也适用于

mystring = "function(macro(another_param)) { a = call(1)};"
"function(another_param) { a = call(1)};"

并且在文本周围可以是任何东西,并且这个文本应该不会受到影响。

您也可以使用 re.sub:

import re

>>> mystring = "function(macro(param)) { a = call(1)};"
>>> re.sub('macro\((.*?)\)', r'', mystring)
function(param) { a = call(1)};

>>> mystring = "function(macro(another_param)) { a = call(1)};"
>>> re.sub('macro\((.*?)\)', r'', mystring)
function(another_param) { a = call(1)};

Re 搜索 macro(param***) 并在找到时将 param*** 放入一个组中,然后子程序将整个匹配替换为 param***