Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中替换括号内的值_Python_Regex_String_Re - Fatal编程技术网

如何在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
使用它来替换它找到的括号内容。