正規表現を使って、HTMLのリンクTAGをリストボックスに入れる方法を教えて下さい。 への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 太一  (社会人) 投稿日時 2011/4/13 22:59:31
ろきお様


大変失礼しました


こちらを参考にして、いろいろ試していました。
グループ化とリストボックスへ入れ込みがよく分かりませんでした。

http://code.msdn.microsoft.com/VB-b67cc93d/

http://dobon.net/vb/dotnet/string/regexmatch.html#section2



有り難うございました。



投稿者 るきお  (社会人) 投稿日時 2011/4/13 20:57:11
情報はギブアンドテイクでお願いします。

>メールアドレスやリンクの抽出方法とかはWEBで探して方法は見つけたのですが、一つのページのHTMLにリンクが沢山ある場合があります。
その方法を載せてください。

回答する側も何も情報がないのと、とっかかりのプログラムがあるのとでは大違いです。

ご質問の件、試しに書いてみましたがこんなところでどうでしょうか?
Dim internet As New Net.WebClient
Dim html As String = internet.DownloadString("http://www.nifty.com/")
internet.Dispose()
Dim regop As System.Text.RegularExpressions.RegexOptions = System.Text.RegularExpressions.RegexOptions.IgnoreCase Or System.Text.RegularExpressions.RegexOptions.Singleline
Dim pattern As String = "\<a.*?(href=[""'](?<href>.*?)[""']).*?\>(?<InnerHtml>.*?)\</a.*?\>"
Dim regex As New System.Text.RegularExpressions.Regex(pattern, regop)

ListBox1.Items.Clear()

For Each match As System.Text.RegularExpressions.Match In regex.Matches(html)
    Dim href As String = match.Groups("href").Value
    Dim innerHtml As String = match.Groups("InnerHtml").Value

    ListBox1.Items.Add(href & " " & innerHtml)

Next


このプログラムはいろいろと考慮されていないことはありますが、多くのケースでAタグの情報を抜き出すことができます。
対象のサイトはutf-8で記述されていることが前提です。
投稿者 太一  (社会人) 投稿日時 2011/4/13 16:57:29
正規表現を使って、HTMLのリンクTAGをリストボックスに入れる方法を教えて下さい。

メールアドレスやリンクの抽出方法とかはWEBで探して方法は見つけたのですが、一つのページのHTMLにリンクが沢山ある場合があります。

それを順に抽出して、リストボックスに入れていきたいのですが、方法を教えて下さい。


VB2005です。