Cómo: Identificar hipervínculos en una cadena HTML en Visual Basic
Actualización: noviembre 2007
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:
La cadena"<A", seguida de
El menor conjunto de cero o más caracteres que no incluye el carácter">", seguido por
La cadena"HREF", seguida de
Cero o más caracteres de espacio en blanco, seguidos por
El carácter "=", seguido de
Cero o más caracteres de espacio en blanco, seguidos por
El carácter de comilla, seguido de
El conjunto de caracteres que no incluyen el carácter de la comilla (capturado), seguido por
El carácter de comilla, seguido de
El menor conjunto de cero o más caracteres que no incluye el carácter">", seguido por
El carácter ">", seguido de
El conjunto más pequeño de cero o más caracteres (capturados), seguido por
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