Web ページのテキストを取得できます。たとえば、https://stackoverflow.com/questions にいくつかの実際のリンクと作成されたリンクがあるとします。
    /質問
    /タグ
    /questions?sort=投票
    /questions?sort=active
    ランダムページ.aspx
    ../coolhomepage.aspx
元のページがhttps://stackoverflow.com/questionsであることを知っていて、.Net でこれへのリンクを解決する方法はありますか?
    https://stackoverflow.com/questions
    https://stackoverflow.com/tags
    https://stackoverflow.com/questions?sort=votes
    https://stackoverflow.com/questions?sort=active
    https://stackoverflow.com/questions/randompage.aspx
    https://stackoverflow.com/coolhomepage.aspx
ブラウザがリンクを解決するのに十分スマートな方法のようなものです。
=========================== 更新 - David のソリューションを使用:
    'すべての <a ... /a> リンクに一致する正規表現
    Dim myRegEx As New Regex("\<\s*a (?# Find opening <a tag) " & _
                             ".+?href\s*=\s*['""] (?# ではすべて href=' または "" ) " & _
                             "(?<href>.*?)['""] (?# その後、すべて次の ' または "" ) " & _
                             ".*?\> (?# それではすべて > ) " & _
                             "(?<name>.*?)\<\s*/a\s*\> (?# それではすべて </a> ) ", _
                             RegexOptions.IgnoreCase または _
                             RegexOptions.IgnorePatternWhitespace または _
                             RegexOptions.Multiline)
    'マッチしたすべてのリンクを保持するMatchCollection
    myMatchCollection を MatchCollection として暗くする
    myMatchCollection = myRegEx.Matches(Me._RawPageText)
    'すべての一致をループし、href 属性の値を評価します。
    For i As Integer = 0 To myMatchCollection.Count - 1
        thisLink を文字列として暗く = ""
        thisLink = myMatchCollection(i).Groups("href").Value()
        'これは Javascript と Mailto リンクをチェックします。
        「これは完全ではありません。他にも確認すべきことがありますが、まだ遭遇していません。
        If thisLink.ToLower.StartsWith("javascript") Then
            thisLink = "JAVASCRIPT: " & thisLink
        ElseIf thisLink.ToLower.StartsWith("mailto") Then
            thisLink = "MAILTO: " & thisLink
        そうしないと
            Dim baseUri As New URI(Me.URL)
            If Not thisLink.ToLower.StartsWith("http") Then
                'これは部分的な URL であるため、元の URL に対して相対的であると想定します
                Dim myUri As New URI(baseUri, thisLink)
                thisLink = "相対ローカル リンク: 解決済み: " & myUri.ToString() & "オリジナル: " & thisLink
            そうしないと
                'リンクは HTTP で始まり、ベース ホストの一部であるか、ホストの外部にあるかを判断します。
                Dim ThisUri As New URI(thisLink)
                If ThisUri.Host.ToLower = baseUri.Host.ToLower Then
                    thisLink = "INSIDE COMPLETE LINK: " & thisLink
                そうしないと
                    thisLink = "外部リンク: " & thisLink
                終了条件
            終了条件
        終了条件
        '見つかったリンクを Generic.List(Of String) に保存しています
        「このリンクには説明文が追加されています。
        'TODO: 一意の内部リンクのみを保持するコレクションを作成します。
        Me._Links.Add(thisLink)
    次