HOW TO:在 Visual Basic 中識別 HTML 字串內的超連結
這個範例會識別 HTML 文件中超連結的簡單規則運算式 (Regular Expression)。
範例
這個範例會使用規則運算式 <A[^>]*?HREF\s*=\s*"([^"]+)"[^>]*?>([\s\S]*?)<\/A>,這表示:
字串 "<A",後面接著
不包含字元 ">" 之零或多個字元的最小集合,後面接著
字串 "HREF",後面接著
零或多個空白字元,後面接著
字元 "=",後面接著
零或多個空白字元,後面接著
問號字元,後面接著
不包含問號字元的字元集合 (已擷取),後面接著
問號字元,後面接著
不包含字元 ">" 之零或多個字元的最小集合,後面接著
字元 ">",後面接著
零或多個字元的最小集合 (已擷取),後面接著
字串 "</A>"。
已使用規則運算式初始化 Regex 物件,並且指定為不區分大小寫。
Regex 物件的 Matches 方法會傳回 MatchCollection 物件,此物件包含規則運算式所比對之輸入字串的所有相關資訊。
''' <summary>Identifies hyperlinks in HTML text.</summary>
''' <param name="htmlText">HTML text to parse.</param>
''' <remarks>This method displays the label and destination for
''' each link in the input text.</remarks>
Sub IdentifyLinks(ByVal htmlText As String)
Dim hrefRegex As New Regex(
"<A[^>]*?HREF\s*=\s*""([^""]+)""[^>]*?>([\s\S]*?)<\/A>",
RegexOptions.IgnoreCase)
Dim output As String = ""
For Each m As Match In hrefRegex.Matches(htmlText)
output &= "Link label: " & m.Groups(2).Value & vbCrLf
output &= "Link destination: " & m.Groups(1).Value & vbCrLf
Next
MsgBox(output)
End Sub
這個範例要求您必須使用 Imports 陳述式,匯入 System.Text.RegularExpressions 命名空間。 如需詳細資訊,請參閱 Imports 陳述式 (.NET 命名空間和型別)。