如何在python中替换括号内的值
给定如何在python中替换括号内的值,python,regex,string,re,Python,Regex,String,Re,给定string=“a(a123-bcd-a456)ppll” 目标:用“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=r
string=“a(a123-bcd-a456)ppll”
目标:用“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)
打印(输出)#a(A123-bcd-A456)ppll
这里的策略是首先捕获括号
(…)
中的内容,然后将其传递给lambda回调函数。在lambda内部,我们将a
替换为a您可以使用带有回调函数的re.sub
:
string=“a(a123-bcd-a456)ppll”
output=re.sub(r'\(.*)\),lambda x:'('+x.group(1).replace('a','a')+'),string)
打印(输出)#a(A123-bcd-A456)ppll
这里的策略是首先捕获括号(…)
中的内容,然后将其传递给lambda回调函数。在lambda内部,我们将a
替换为a字符串。在调用regex函数之前调用replace(“a”,“a”)
,并生成字符串“a(A123-bcd-A456)ppll”
。然后re.sub
使用它来替换它找到的括号内容。string.replace(“a”,“a”)
在调用regex函数之前被调用,并生成字符串“a(A123-bcd-A456)ppll”
。然后re.sub
使用它来替换它找到的括号内容。