1

我想html根据内部文本值从一个或字符串中获取一个 URL。

例如:

<a href="http://www.itsmywebaddress.com">My Website</a>.
<a href="http://www.everythingisforgood.com">good</a>.

在这里,我需要根据“我的网站”(我们作为输入提供)的内部文本来获取 URL。

谁能告诉我,这是什么Regex代码或使用HtmlAgilityPack我们如何做到这一点?

我使用了以下Regex方法。但是,它会获取“a”标签内的所有值。

Regex.Match(str, @"<a [^>]*>(.*?)</a>").Groups[1].Value;

提前致谢 ...

4

2 回答 2

1
HtmlWeb hw = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = hw.Load(url);
var hrefs = doc.DocumentNode.SelectNodes("//a[@href]")
             .Where(link => link.InnerHtml == str)
             .Select(l=>l.Attributes["href"].Value).ToList();
于 2013-08-08T09:23:37.717 回答
0

如果您使用的是 htmlagility,您应该能够直接访问 href 而无需使用正则表达式。

像这样的东西应该有效;

HtmlWeb hw = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = hw.Load(url);
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
HtmlAttribute att = link.Attributes["href"];
}
于 2013-08-08T09:21:37.397 回答