c# - 正则表达式从 HTML 获取 url

标签 c# javascript asp.net .net regex

我正在使用以下正则表达式(我在网上找到的)来获取 HTML 页面中的 URL;

        Regex regex = new Regex(@"url\((?<char>['""])?(?<url>.*?)\k<char>?\)");

适用于下面的 HTML;

<div style="background:url(images/logo.png) no-repeat;">UK</div>

但是,当 HTML 页面包含以下 Javascript 时,返回的内容超出了我的需要,返回“destpage”

function buildurl(destpage) 

我尝试使用以下正则表达式来包含冒号,但它似乎无效

:url\((?<char>['""])?(?<:url>.*?)\k<char>?\)

任何帮助将不胜感激。

最佳答案

要获取所有 URL,请使用 HtmlAgilityPack而不是正则表达式。从他们的示例页面

HtmlDocument doc = new HtmlDocument();
doc.Load("file.htm");
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
{

}

您可以对此进行扩展以获取样式 url,例如,使用 //@style 获取 style 节点并迭代这些节点以提取 url值。

关于c# - 正则表达式从 HTML 获取 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18491486/

相关文章:

c# - 我收到这个错误。无法将类型 'double' 隐式转换为 'decimal' 。存在明确的对话(您是否缺少类型转换?)

javascript - 如何在无需重新启动的 Firefox 扩展中交换数组文件?是不是更新数组元素而不是整个扩展?

javascript - 是否可以使用js发送值而无需刷新 map 表单?

asp.net - 访问所有事件客户端 session 集合?

c# - JSON.Net - 无法将当前 json 对象(例如 {"name":"value"})反序列化为类型 'system.collections.generic.list` 1

c# - Mstest 单元测试从命令行失败

asp.net - 从枚举 .NET Core 中选择列表

c# - 如何将现有项目推到列表末尾?

c# - GridView、ItemTemplate、DataTemplate 绑定(bind)在 C# 代码后面

javascript - jQuery 自定义滚动条插件不随 horizo​​ntalScroll 更新 : true