.net 如何在HTML字符串中找到所有图像链接
我正在尝试构建一个正则表达式,用于解析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]) 但我不知道如何包括其他地方。正则
,或者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();