0

我有一个工作代码,但这会从站点中提取所有链接。

    strReg = "<a\s+href\s*=\s*""?([^"" >]+)""?>(.+)</a>"
    Dim reg As New Regex(strReg, RegexOptions.IgnoreCase)

我想修改代码以仅搜索特定的 URL。例如,我只想提取包含 /test/ 的 URL。我的程序应该只显示包含单词 /test/ 的链接。

像:

http://www.website.com/sample/test/
http://www.website.com/test/

我应该对我的 RegEx 代码进行哪些更改?提前致谢。


这是我更新的工作代码:

Dim links As New List(Of String)()
Dim htmlDoc As New HtmlAgilityPack.HtmlDocument()
htmlDoc.LoadHtml(WebSource)
For Each link As HtmlNode In htmlDoc.DocumentNode.SelectNodes("//a[@href]")
    Dim att As HtmlAttribute = link.Attributes("href")

    If att.Value.Contains("/test/") Then
        ListBox1.Items.Add(att.Value)
    End If
Next

它现在显示所有带有 /test/ 的 URL,但我想从谷歌搜索结果中提取 URL。是否可以?

4

2 回答 2

2

在谷歌搜索结果中,您需要找到包含链接的元素。例如下面将从cite文档中选择节点。

For Each link As HtmlNode In htmlDoc.DocumentNode.SelectNodes("//cite")
    If link.InnerText.Contains("/test/") Then
        ListBox1.Items.Add(link.InnerText)
    End If
Next
于 2013-08-15T08:14:11.670 回答
1

以下将仅匹配其中包含“/test/”的那些标签。

strReg = "<a\s+href\s*=\s*""?([^"" >]+(/test/)[^" >]*)""?>(.+)</a>"
于 2013-08-15T06:20:13.640 回答