我有一个有效的代码,但这会从网站中提取所有链接。
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搜索结果中提取网址。有可能吗?
答案 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>"