Share via


Cómo: Identificar hipervínculos en una cadena HTML en Visual Basic

Este ejemplo muestra una expresión regular simple para identificar los hipervínculos en un documento HTML.

Ejemplo

Este ejemplo utiliza la expresión regular <A[^>]*?HREF\s*=\s*"([^"]+)"[^>]*?>([\s\S]*?)<\/A>, que quiere decir:

  1. La cadena"<A", seguida de

  2. El menor conjunto de cero o más caracteres que no incluye el carácter">", seguido por

  3. La cadena"HREF", seguida de

  4. Cero o más caracteres de espacio en blanco, seguidos por

  5. El carácter "=", seguido de

  6. Cero o más caracteres de espacio en blanco, seguidos por

  7. El carácter de comilla, seguido de

  8. El conjunto de caracteres que no incluyen el carácter de la comilla (capturado), seguido por

  9. El carácter de comilla, seguido de

  10. El menor conjunto de cero o más caracteres que no incluye el carácter">", seguido por

  11. El carácter ">", seguido de

  12. El conjunto más pequeño de cero o más caracteres (capturados), seguido por

  13. La cadena"</A>".

El objeto Regex se inicializa con la expresión regular, especificando que no se distinga entre mayúsculas y minúsculas.

El método Matches del objeto Regex devuelve un objeto MatchCollection que contiene información sobre todas las partes de la cadena de entrada que hace coincidir la expresión 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

Este ejemplo requiere que utilice la instrucción Imports para importar el espacio de nombres System.Text.RegularExpressions. Para obtener más información, vea Instrucción Imports (Tipo y espacio de nombres de .NET).

Vea también

Conceptos

Ejemplo: Buscar etiquetas HREF

Otros recursos

Analizar cadenas en Visual Basic