【问题标题】:regular expression C#正则表达式 C#
【发布时间】:2009-08-27 07:04:43
【问题描述】:

我的 html 页面带有 /with_us.php?page=digit 和 out.php?i=digit 之类的链接。我怎样才能从页面中获取所有这些链接,但如果我能立即从这些链接中只收集数字会更好

【问题讨论】:

  • 我知道你在思考正则表达式的思路,但这有点超出了上下文无关语言的范畴。您可能想用“使用 C# 从网页中抓取链接”来重写这个问题。我想 Beautiful Soup 库在这里可能会有所帮助,但不知道那里是否有 .NET 绑定...

标签: c# regex url


【解决方案1】:

HTML Agility Pack 非常适合这个;这和首页的例子差不多:

foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href]")
{
    string href = link["href"].Value;
}

现在只需解析“href”;也许是这样的:

Match match = Regex.Match(href, @"[&?]\w+=(\d+)");
int i;
if (match.Success && int.TryParse(match.Groups[1].Value, out i))
{
    Console.WriteLine(i);
}

【讨论】:

  • amm,主要问题是我只需要链接到这样的模板 /with_us.php?page=digit 例如 go 但您的 HTML Agility Pack 示例会从页面获取所有链接。我问这个问题是为了立即找到选定的链接
【解决方案2】:

您可能想尝试实际解析页面并遍历 DOM。

尝试: http://www.codeplex.com/htmlagilitypack

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多