Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.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 - Fatal编程技术网

Python 如何在字符串中搜索文本并替换为其值

Python 如何在字符串中搜索文本并替换为其值,python,Python,我需要搜索字符串s中的图像\u bid,如果存在,则需要将该字符串替换为其值DEBUG在这种情况下,我尝试了以下方法,但似乎不起作用,有人建议我如何做吗 import re s = "cols/sel/Pkg/Bin/LA/${image_bid:DEBUG}/" match = re.search('image_bid:(\w+)',s) print match.group(1) if match: final_value = s.replace('image_bid:(\w+)'

我需要搜索字符串
s
中的图像\u bid,如果存在,则需要将该字符串替换为其值
DEBUG
在这种情况下,我尝试了以下方法,但似乎不起作用,有人建议我如何做吗

import re
s = "cols/sel/Pkg/Bin/LA/${image_bid:DEBUG}/"

match = re.search('image_bid:(\w+)',s)
print match.group(1)

if match:
    final_value = s.replace('image_bid:(\w+)',match.group(1))
print final_value

MY OUTPUT:-
cols/sel/Pkg/Bin/LA/${image_bid:DEBUG}/

Expected output:-
cols/sel/Pkg/Bin/LA/DEBUG
方法replace()返回字符串的副本,其中 旧的已替换为新的(可选限制) 替换到最大值的数量

字符串的
replace
方法似乎不支持正则表达式,请改用
re.sub

if match:
    final_value = re.sub(r'\${image_bid:\w+}',match.group(1), s)
print final_value
# cols/sel/Pkg/Bin/LA/DEBUG/
方法replace()返回字符串的副本,其中 旧的已替换为新的(可选限制) 替换到最大值的数量

字符串的
replace
方法似乎不支持正则表达式,请改用
re.sub

if match:
    final_value = re.sub(r'\${image_bid:\w+}',match.group(1), s)
print final_value
# cols/sel/Pkg/Bin/LA/DEBUG/

你可能想要像这样的东西

final_value = re.sub(r'\$\{image_bid\:(\w+)\}/', r'\1', s)

你可能想要像这样的东西

final_value = re.sub(r'\$\{image_bid\:(\w+)\}/', r'\1', s)

为什么您希望
${
}/
消失?这不是一条可接受的路径……我只是说您的实现没有真正尝试删除它们。我不确定这是故意的还是疏忽。为什么您希望
${
}/
消失?这不是一条可接受的路径……我只是说您的实现没有真正尝试删除它们。我不确定这是故意的还是疏忽。我需要后面的前斜杠
/
cols/sel/Pkg/Bin/LA/DEBUG/
一样出现。您可以从模式中删除
/
,这样它就不会被替换。添加它是因为它没有显示在预期的输出中。我需要尾部的前斜杠
/
cols/sel/Pkg/Bin/LA/DEBUG/
一样出现。您可以从模式中删除
/
,这样它就不会被替换。添加它是因为它没有显示在您的预期输出中。