根据原始内容将字符串替换为字符串

时间:2015-11-03 12:24:39

标签: python regex replace substitution

我需要将宏(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)};"

并且在文本中可能是任何内容,此文本不应受到影响。

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***