Condividi tramite


Procedura: identificare collegamenti ipertestuali in una stringa HTML di Visual Basic

Aggiornamento: novembre 2007

Nell'esempio riportato di seguito viene illustrata un'espressione regolare semplice per l'identificazione dei collegamenti ipertestuali in un documento HTML.

Esempio

Nell'esempio viene utilizzata l'espressione regolare <A[^>]*?HREF\s*=\s*"([^"]+)"[^>]*?>([\s\S]*?)<\/A>, ovvero:

  1. La stringa "<A", seguita da

  2. Il gruppo più piccolo di zero o più caratteri che non include il carattere ">", seguito da

  3. La stringa "HREF", seguita da

  4. Zero o più spazi, seguiti da

  5. Il carattere "=", seguito da

  6. Zero o più spazi, seguiti da

  7. Il carattere di virgoletta, seguito da

  8. Il gruppo di caratteri che non include il carattere di virgoletta (acquisito), seguito da

  9. Il carattere di virgoletta, seguito da

  10. Il gruppo più piccolo di zero o più caratteri che non include il carattere ">", seguito da

  11. Il carattere ">", seguito da

  12. Il gruppo più piccolo di zero o più caratteri (acquisito), seguito da

  13. La stringa "</A>".

L'oggetto Regex viene inizializzato con l'espressione regolare e viene specificato senza distinzione tra maiuscole e minuscole.

Il metodo Matches dell'oggetto Regex restituisce un oggetto MatchCollection contenente informazioni relative a tutte le parti della stringa di input corrispondente all'espressione regolare.

    ''' <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

Per questo esempio è necessaria l'istruzione Imports per importare lo spazio dei nomi di System.Text.RegularExpressions. Per ulteriori informazioni, vedere Istruzione Imports (tipo e spazio dei nomi .NET).

Vedere anche

Concetti

Esempio: ricerca di HREF

Altre risorse

Analisi delle stringhe in Visual Basic