【问题标题】:Finding links in Google source code with Regex使用正则表达式在 Google 源代码中查找链接
【发布时间】:2012-12-11 16:47:48
【问题描述】:

当您使用正则表达式搜索某些内容时,我正在尝试获取 Google 在首页上生成的 10 个网站的链接。我对正则表达式很陌生,并且在使其正常工作时遇到了很多麻烦:

MatchCollection links = Regex.Matches(indexPage, @"<h3 class=""r""><a href=""\s*(.+?)\s*"" class=l", RegexOptions.Multiline);

一旦我在集合中获得了链接,我就会将它们添加到此处的列表中:

foreach (Match link in links) {
    string result = link.Groups[1].Value;
    results.Add(result);
}

它没有找到任何链接,任何帮助将非常感谢

【问题讨论】:

  • 建议:不要为此使用正则表达式
  • 添加内容,从您尝试获取链接的内容中
  • 您尚未提出问题或指定问题。我建议您查看右侧的Related 侧边栏。
  • 请考虑使用 HTML Agility Pack 来实现此目的。它比任何涉及 RegEx 的解决方案都要脆弱得多:htmlagilitypack.codeplex.com
  • 那些网站是什么!

标签: c# html regex


【解决方案1】:

这会找到所有的网址:

    "#^((?#
    the scheme:
    )(?:https?://)(?#
    second level domains and beyond:
    )(?:[\S]+\.)+((?#
top level domains:
)MUSEUM|TRAVEL|AERO|ARPA|ASIA|EDU|GOV|MIL|MOBI|(?#
)COOP|INFO|NAME|BIZ|CAT|COM|INT|JOBS|NET|ORG|PRO|TEL|(?#
)A[CDEFGILMNOQRSTUWXZ]|B[ABDEFGHIJLMNORSTVWYZ]|(?#
)C[ACDFGHIKLMNORUVXYZ]|D[EJKMOZ]|(?#
)E[CEGHRSTU]|F[IJKMOR]|G[ABDEFGHILMNPQRSTUWY]|(?#
)H[KMNRTU]|I[DELMNOQRST]|J[EMOP]|(?#
)K[EGHIMNPRWYZ]|L[ABCIKRSTUVY]|M[ACDEFGHKLMNOPQRSTUVWXYZ]|(?#
)N[ACEFGILOPRUZ]|OM|P[AEFGHKLMNRSTWY]|QA|R[EOSUW]|(?#
)S[ABCDEGHIJKLMNORTUVYZ]|T[CDFGHJKLMNOPRTVWZ]|(?#
)U[AGKMSYZ]|V[ACEGINU]|W[FS]|Y[ETU]|Z[AMW])(?#
the path, can be there or not:
)(/[a-z0-9\._/~%\-\+&\#\?!=\(\)@]*)?)$#i"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多