• 締切済み

VBの正規表現について

初めまして。 VB.NETについてなんですが以下のHTMLを正規表現で取得する事は可能ですか? <TD class=ct><A href="【項目1】">【項目2】</A></td> <TD class=ct>【項目3】</td> <TD class=ct>【項目4】</td> <TD class=ct>【項目5】</td>       <TD class=ct>【項目6】</td>       <TD class=ct>【項目7】</td> 項目1から項目7を正規表現で取得する事は可能でしょうか?

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

ひょっとして1~7までの各項目を$1~$7までに格納して 獲得しようとして頑張ってます? >【項目1】 ←これ自体を取得したいのです。 ということなら Imports System Imports System.Text Imports System.Text.RegularExpressions Imports Microsoft.VisualBasic 'what to do compile 'vbc vbc /reference:system.dll thisfile.vb Module Mogera Sub Main Dim strText as String strText = "<TD class=ct><A href=""""【項目1】"""">【項目2】</A></td>" & ControlChars.Lf & _ "<TD class=ct>【項目3】</td>" & ControlChars.Lf & _ "<TD class=ct>【項目4】</td>" & ControlChars.Lf & _ "<TD class=ct>【項目5】</td>" & ControlChars.Lf & _ "      <TD class=ct>【項目6】</td>" & ControlChars.Lf & _ "      <TD class=ct>【項目7】</td>" & ControlChars.Lf ' <TD class=ct><A href=""(?<url>.*?)"".*?>(?<text1>.*?)</A> Dim ms as MatchCollection ms = Regex.Matches(strText, "【項目\d】", _ RegexOptions.SingleLine Or _ RegexOptions.MultiLine Or _ RegexOptions.IgnorePatternWhitespace) Dim m as Match for each m in ms Dim s As String s = m.Groups(0).Value s = s.Replace(ControlChars.Lf, "") Console.WriteLine("'" & s & "'") next End Sub End Module このようにしてしまえばいいんじゃないですか? 実行結果: '【項目1】' '【項目2】' '【項目3】' '【項目4】' '【項目5】' '【項目6】' '【項目7】'

noname#39970
noname#39970
回答No.1

(【項目\d】) こうじゃなく?

toyon0122
質問者

補足

【項目1】 ←これ自体を取得したいのです。 【項目1】と【項目2】に関しては <TD class=ct><A href=""(?<url>.*?)"".*?>(?<text1>.*?)</A> これで取得できるんですが、それ以降がうまく取得出来ません。

関連するQ&A