Partilhar via


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:

  1. A string "<A", seguida por

  2. O menor conjunto de zero ou mais caracteres que não inclui o caracter ">", seguido por

  3. A string "HREF", seguida por

  4. Zero ou mais caracteres de espaço, seguido por

  5. O caracter "=", seguido por

  6. Zero ou mais caracteres de espaço, seguido por

  7. As aspas, seguidas por

  8. O conjunto de caracteres que não inclui aspas (capturado), seguido por

  9. As aspas, seguidas por

  10. O menor conjunto de zero ou mais caracteres que não inclui o caracter ">", seguido por

  11. O caracter ">", seguido por

  12. O menor conjunto de zero ou mais caracteres (capturado), seguido por

  13. 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).

Consulte também

Conceitos

Exemplo: Procurando HREFs

Outros recursos

Analisando Sequências de Caracteres em Visual Basic