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

タグの編集
投稿者 太一  (社会人) 投稿日時 2011/4/13 16:57:29
正規表現を使って、HTMLのリンクTAGをリストボックスに入れる方法を教えて下さい。

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

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


VB2005です。 
投稿者 るきお  (社会人) 投稿日時 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 22:59:31
ろきお様


大変失礼しました


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

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

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



有り難うございました。