0

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

        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>?\)

任何帮助将非常感激。

4

2 回答 2

3

要获取所有 URL,请使用HtmlAgilityPack而不是 Regex。从他们的示例页面

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

}

您可以扩展它以获取您的样式 url,例如,使用//@style获取style节点并遍历这些节点以提取url值。

于 2013-08-28T15:01:10.263 回答
0

只在前面添加冒号:

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

第二个“ url”是该组的名称。

于 2013-08-28T15:10:09.170 回答