Como: Identificar hyperlinks em uma cadeia de caracteres HTML no Visual Basic
Esse exemplo demonstra uma expressão regular simples para identificar hyperlinks em um documento HTML.
Exemplo
Esse exemplo usa a expressão regular <A[^>]*?HREF\s*=\s*"([^"]+)"[^>]*?>([\s\S]*?)<\/A>, que significa:
A string "<A", seguida por
O menor conjunto de zero ou mais caracteres que não inclui o caracter ">", seguido por
A string "HREF", seguida por
Zero ou mais caracteres de espaço, seguido por
O caracter "=", seguido por
Zero ou mais caracteres de espaço, seguido por
As aspas, seguidas por
O conjunto de caracteres que não inclui aspas (capturado), seguido por
As aspas, seguidas por
O menor conjunto de zero ou mais caracteres que não inclui o caracter ">", seguido por
O caracter ">", seguido por
O menor conjunto de zero ou mais caracteres (capturado), seguido por
A string "</A>".
O objeto Regex é inicializado com a expressão regular, e especificado para diferenciar maiúsculas e minúsculas.
O método Matches do objeto Regex retorna um objeto MatchCollection que contém informações sobre todas as partes da string de entrada que é compatível com a expressão regular.
''' <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
Esse exemplo exige que você use a declaração Imports para importar o namespace System.Text.RegularExpressions.Para obter mais informações, consulte Declaração Imports (Tipo e Namespace .NET).