python - 如何在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
.