我有特殊情况需要替换字符串
(src="cid:image001.png@01D081C1.C5908B40")
以下
(src="\\resources\\images\\image001.png")
在给定的文本中。
它应该替换所有出现在给定文本中的事件。
我试过这样但是没有按预期工作。
fileName ="image001.png";
Regex.Replace(body, "[src=\"cid:" + fileName + "@](*)[\"]", "src=\"\\Resources\\Email\\" + emailID + "\\" + fileName + "\"");
答案 0 :(得分:0)
fileName =
Regex.Replace(body,
"[src=\"cid:" + fileName + "@](*)[\"]",
"src=\"\\Resources\\Email\\" + emailID + "\\" + fileName + "\"");
答案 1 :(得分:0)
答案 2 :(得分:0)
有几件事需要记住:
Regex.Escape
(例如,image001.png
中有一个点,因此必须在模式中将其转义为image001\.png
).Replace("$","$$")
来替换文字$
(例如emailID.Replace("$", "$$")
)。我猜不出你的emailID
变量是什么样的,因此,我不会在替换字符串中使用变量来获得你想要的输出。
所以,我建议的代码:
var fileName = "image001.png";
var body = "(src=\"cid:image001.png@01D081C1.C5908B40\")";
var pattern = @"(\(src="")cid:(" + Regex.Escape(fileName) + @")@.*""\)"; // will look like (\(src=")cid:(image001\.png)@.*"\)
var restt = Regex.Replace(body, pattern, @"$1\\resources\\images\\$2"")");
输出: