【问题标题】:How to replace value within a bracket in python [duplicate]如何在python中替换括号内的值[重复]
【发布时间】:2021-03-21 05:03:57
【问题描述】:

给定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?

【问题讨论】:

  • string.replace("a", "A") 被调用之前 正则表达式函数被调用,并产生字符串"A(A123-bcd-A456)ppll"。然后re.sub 使用 that 替换它找到的括号内容。

标签: python regex string python-re


【解决方案1】:

您可以将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

【讨论】:

    猜你喜欢
    • 2020-10-24
    • 1970-01-01
    • 2017-11-17
    • 2016-12-08
    • 2018-07-26
    • 2023-03-21
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    相关资源
    最近更新 更多