这段代码应该将img src的值转换为本地路径。C#正则表达式的捕获
var matches = Regex.Replace(html, "(<[ ]*img[^s]+src=[\"'])([^\"']*)([\"'][^/]*/>)",
(match)=> {
return string.Format("{0}{1}{2}",
match.Captures[0],
HostingEnvironment.MapPath("~/" + match.Captures[1]),
match.Captures[2]);
});
它匹配正确的整个图像标记,但只有一个捕获。我认为括号可以捕获,但似乎并不像那样工作。
我该如何写这个来获得三个捕获,中间的一个是路径?
什么是你输入的字符串? – Andrey
也不要使用正则表达式来解析HTML – Andrey
@Andrey作为一般原则,我衷心赞同。在这种情况下,我使用HTML作为模板标记,通过html转换为pdf转换器。转换器的缺点是它不会解析资源,除非您指定绝对本地文件系统路径。在通过转换器填充HTML的代码中自动解析Web相对路径意味着我可以使用一个模板,将其呈现为浏览器可用于预览和测试的网页。 –