首页 > 解决方案 > 如何在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

标签: pythonregexstringre

解决方案


您可以使用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 内部,我们aA.


推荐阅读