如何替换 python 中括号内的值

How to replace value within a bracket in python

给定 string = "a(a123-bcd-a456)ppll"

目标:用"A"

替换括号内的"a"

期望输出="a(A123-bcd-A456)ppll"

我试过:

regex = '\(.*?\)'
re.sub(regex, string, string.replace("a", "A"))

但结果是 Aa(a123-bcd-a456)ppllppll?

您可以将 re.sub 与回调函数一起使用:

string = "a(a123-bcd-a456)ppll"
output = re.sub(r'\((.*?)\)', lambda x: '(' + x.group(1).replace('a', 'A') + ')', string)
print(output)  # a(A123-bcd-A456)ppll

这里的策略是先捕获括号内的内容(...),然后传递给一个lambda回调函数。在 lambda 中,我们将 a 替换为 A.