VB.net使用RegEx提取特定的URL

时间:2013-08-15 06:09:32

标签: regex vb.net

我有一个有效的代码,但这会从网站中提取所有链接。

    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 /的网址,但我想从Google搜索结果中提取网址。有可能吗?

2 个答案:

答案 0 :(得分:2)

在Google搜索结果中,您需要找到包含链接的元素。例如,下面将从文档中选择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

答案 1 :(得分:1)

以下内容仅匹配其中包含“/ test /”的标记。

strReg = "<a\s+href\s*=\s*""?([^"" >]+(/test/)[^" >]*)""?>(.+)</a>"