0

可能重复:
用于解析网页链接的正则表达式?

如何使用正则表达式从 HTML 中找到所有 url。我只需要页面的 url,所以我想添加排除以“.css”或“.jpg”或“.js”等结尾的 url。

HTML 示例:

<a href=index.php?option=content&amp;task=view&amp;id=2&amp;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> |

谢谢

4

1 回答 1

2

If you can, avoid using Regular Expressions, but instead use a proper HTML parser. For example, reference the HTML Agility Pack, and use the following:

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.
    }
}
于 2012-06-21T14:50:25.007 回答