Partager via


Comment : identifier des liens hypertexte dans une chaîne HTML en Visual Basic

Cet exemple présente une expression régulière simple pour identifier des liens hypertexte dans un document HTML.

Exemple

Cet exemple utilise l'expression régulière <A[^>]*?HREF\s*=\s*"([^"]+)"[^>]*?>([\s\S]*?)<\/A>, qui signifie :

  1. la chaîne "<A", suivie de ;

  2. le plus petit jeu de zéro ou plus de caractères qui n'inclut pas le caractère ">", suivi de ;

  3. la chaîne "HREF", suivie de ;

  4. zéro ou plus de caractères espace, suivis de ;

  5. le caractère "=", suivi de ;

  6. zéro ou plus de caractères espace, suivis de ;

  7. le caractère guillemet, suivi de ;

  8. le jeu de caractères qui n'inclut pas le caractère guillemet (capturé), suivi de ;

  9. le caractère guillemet, suivi de ;

  10. le plus petit jeu de zéro ou plus de caractères qui n'inclut pas le caractère ">", suivi de ;

  11. le caractère ">", suivi de ;

  12. le plus petit jeu de zéro ou plus de caractères (capturé), suivi de ;

  13. la chaîne "</A>".

L'objet Regex est initialisé avec l'expression régulière, et spécifié comme respectant la casse.

La méthode Matches de l'objet Regex retourne un objet MatchCollection qui contient des informations sur toutes les parties de la chaîne d'entrée correspondant à l'expression régulière.

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

Cet exemple requiert que vous utilisiez l'instruction Imports pour importer l'espace de noms System.Text.RegularExpressions. Pour plus d'informations, consultez Imports, instruction (espace de noms et type .NET).

Voir aussi

Concepts

Exemple : recherche de valeurs HREF

Autres ressources

Analyse de chaînes en Visual Basic