我有一个基本的锚节点作为字符串,并希望从中获取URL和文本。例如:从vbnet的html节点获取数据
<a href="http://MyAwesomeWebsite.com/">Go to MyAwesomeWebsite</a>
我想两个字符串,一个具有:
http://MyAwesomeWebsite.com/
和其他与
MyAwesomeWebsite
如何代码呢?
我有一个基本的锚节点作为字符串,并希望从中获取URL和文本。例如:从vbnet的html节点获取数据
<a href="http://MyAwesomeWebsite.com/">Go to MyAwesomeWebsite</a>
我想两个字符串,一个具有:
http://MyAwesomeWebsite.com/
和其他与
MyAwesomeWebsite
如何代码呢?
你可以使用正则表达式来提取要作为旁的文字:
Imports System.Text.RegularExpressions
Sub Main()
Dim anchor As String
anchor = "<a href=""http://MyAwesomeWebsite.com/"">Go to MyAwesomeWebsite</a>"
Dim href As String = Regex.Match(anchor, "\""[a-z,A-Z,0-9,:,/,.]+\""").Value
Console.WriteLine(href.Substring(1, href.Length - 2))
Dim content As String = Regex.Match(anchor, "\>[a-z,A-Z,0-9,:,/,., ]+\<").Value
Console.WriteLine(content.Substring(1, content.Length - 2))
Console.ReadKey()
End Sub
您也可以使用由字符串提供的方法,如的IndexOf和子字符串。 但是如果你想解析很多人认为我建议你使用像HtmlAgilePack这样的库。
Html Agility Pack库可以为您解析字符串并返回所需的任何信息。这里是关于如何使用它的stackoverflow上的plenty of related questions。
另一种方法涉及使用regular expression查找匹配所需模式的子字符串。
谢谢!但有时链接包含一个'rel'属性,它将作为超级引用出现。任何简单的修复正则表达式?或者我应该使用图书馆。我试图避免只为一个小任务使用一个库。 – 2012-04-15 03:17:50
如果你的目标是检查'rel'页面是更好的使用库。但是如果你只是想获得'rel'的值,你可以使用另一个正则表达式作为下一个:'Dim rel As String = Regex.Match(anchor ,“rel = \”“[az,AZ,0-9,:,/ ,.] + \”“”)值 Console.WriteLine(rel.Substring(5,rel.Length - 6)) '如果你想在使用它之前检查正则表达式是否匹配(对于'href'或'rel'使用正则表达式之间的区别),你可以使用** Regex.IsMatch **。我希望能帮到你;) – 2012-04-16 01:01:31