我需要将宏(param)替换为 param
mystring = "function(macro(param)) { a = call(1)};"
我的目标是
"function(param) { a = call(1)};"
param是可变的,它也必须适用于
mystring = "function(macro(another_param)) { a = call(1)};"
"function(another_param) { a = call(1)};"
并且在文本中可能是任何内容,此文本不应受到影响。
答案 0 :(得分:2)
您还可以使用re.sub
:
import re
>>> mystring = "function(macro(param)) { a = call(1)};"
>>> re.sub('macro\((.*?)\)', r'\1', mystring)
function(param) { a = call(1)};
>>> mystring = "function(macro(another_param)) { a = call(1)};"
>>> re.sub('macro\((.*?)\)', r'\1', mystring)
function(another_param) { a = call(1)};
重新搜索macro(param***)
并将param***
置于一个组中,然后该子组将该整个匹配项仅替换为param***