.net 如何在HTML字符串中找到所有图像链接

.net 如何在HTML字符串中找到所有图像链接,.net,regex,image,html-parsing,embedding,.net,Regex,Image,Html Parsing,Embedding,我正在尝试构建一个正则表达式,用于解析HTML文件和获取所有图像文件。我需要这样做,以便在作为电子邮件发送之前嵌入图像 是否有可以引用图像的“位置列表”?例如,我知道我需要查看,或者CSS样式的url('here'),或者background='here',但这是否涵盖了所有情况 正则表达式是否已经存在于某个地方?我觉得编写正则表达式很痛苦,我不想错过任何一个案例,也不想忘记处理一些损坏的HTML标记 对于[^\x27\x22]*)(?=[\x27\x22]) 但我不知道如何包括其他地方。正则

我正在尝试构建一个正则表达式,用于解析HTML文件和获取所有图像文件。我需要这样做,以便在作为电子邮件发送之前嵌入图像

是否有可以引用图像的“位置列表”?例如,我知道我需要查看
,或者CSS样式的
url('here')
,或者
background='here'
,但这是否涵盖了所有情况

正则表达式是否已经存在于某个地方?我觉得编写正则表达式很痛苦,我不想错过任何一个案例,也不想忘记处理一些损坏的HTML标记

对于
[^\x27\x22]*)(?=[\x27\x22])
但我不知道如何包括其他地方。

正则表达式往往是一种格式,特别是来自不同来源的HTML

我建议为此使用-一个专门构建的HTML解析器

什么是Html敏捷包(HAP)

这是一个敏捷的HTML解析器,它构建读/写DOM并支持纯XPATH或XSLT(您实际上不必理解XPATH或XSLT就可以使用它,不用担心……)。它是一个.NET代码库,允许您解析“web外”HTML文件。解析器对“真实世界”格式错误的HTML非常宽容。对象模型与System.Xml非常相似,但适用于HTML文档(或流)

另一种选择是使用css选择器(如JQuery)选择元素的HtmlAgilityPack扩展。

正则表达式通常是一个,特别是来自不同来源的HTML

我建议为此使用-一个专门构建的HTML解析器

什么是Html敏捷包(HAP)

这是一个敏捷的HTML解析器,它构建读/写DOM并支持纯XPATH或XSLT(您实际上不必理解XPATH或XSLT就可以使用它,不用担心……)。它是一个.NET代码库,允许您解析“web外”HTML文件。解析器对“真实世界”格式错误的HTML非常宽容。对象模型与System.Xml非常相似,但适用于HTML文档(或流)


另一种选择是,使用一个HtmlAgilityPack扩展来使用css选择器(如JQuery)选择元素。

不要使用正则表达式来解析html,而是使用一个html解析器,如


不要使用正则表达式来解析html,而是使用html解析器,如


谢谢,但是CSS样式(
url(…)
)对它没有帮助。我是否应该仅将此部分解析为文本?@Dilbert-A可用于该部分。谢谢,但它对CSS样式(
url(…)
)没有帮助。我是否应该仅将此部分解析为文本?@Dilbert-A可用于该部分。
(?<=img\s+src\=[\x27\x22])(?<Url>[^\x27\x22]*)(?=[\x27\x22])
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);

var a = doc.DocumentNode.Descendants("img")
            .Select(x => x.Attributes["src"].Value)
            .ToArray();