如何使用正则表达式从HTML中查找所有网址。我只需要网页的网址,所以我想添加以“.css”或“.jpg”或“.js”等结尾的网址排除。
HTML示例:
<a href=index.php?option=content&task=view&id=2&Itemid=25 class="menu_selected" id="">Home</a>
或
<a href="http://data.stackexchange.com">data</a> |
<a href="http://shop.stackexchange.com/">shop</a> |
<a href="http://stackexchange.com/legal">legal</a> |
由于
答案 0 :(得分:2)
如果可以,请避免使用正则表达式,而是使用正确的HTML解析器。例如,引用HTML Agility Pack,并使用以下内容:
var doc = new HtmlDocument();
doc.LoadHtml(yourHtmlInput);
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]")
?? Enumerable.Empty<HtmlNode>())
{
string href = link.Attributes["href"].Value;
if (!String.IsNullOrEmpty(href))
{
// Act on the link here, including ignoring it if it's a .jpg etc.
}
}