我正在使用以下正则表达式(我在网上找到的)来获取 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/