• 締切済み

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

  • VBで正規表現

    VBで正規表現 下記のような文字列がTextBoxに入力されています。 <a></a>で囲まれた部分の抽出は出来ましたが、 <td></td>タグで囲まれた’18’も取り出したいのですが正規表現ではどの様に記述すれば宜しいでしょうか? 関係有りそうなコードはこれです。 Regex("<a href=""(?<url>.*?)"".*?>(?<text>.*?)</a>" ---------------------------------------- <TR bgcolor=#ffffff> <TD> 18 </TD> <TD><a href="main.py?qtype=userpage&teamnum=162&username=KOTOKO"> KOTOKO </a> </TD> <TD><a href="http://fah-web2.stanford.edu/awards/cert.php?u=KOTOKO&pts=11379753" target="_blank"> 11379753 </a> </TD> <TD><a href="http://fah-web2.stanford.edu/awards/cert.php?u=KOTOKO&pts=16190&t=wus&bg=3" target="_blank"> 16190 </a> </TD> </TR> ----------------------------------------

  • PHP 正規表現の書き方おしえてください!

    PHP&正規表現初心者です。 ヤフーファイナンスランキングから順位ごとに株価データを取得したいの ですが、正規表現の書き方がわからず意図したデータが取得できません。 ご教授ください。 ソース ************************************************ ~ <tbody> <tr class="rankingTabledata yjM"> <td class="txtcenter">1</td><td class="txtcenter"> <a href="http://stocks.finance.yahoo.co.jp/stocks/detail/?code=0002.t">0002</a></td> <td class="txtcenter yjSt">東証JQS</td> <td class="normal yjSt">(株)シxダー</td> <td class="txtcenter grey yjSt">12/18</td> <td class="txtright bold">313</td> <td class="txtright bgyellow02"><span class="greenFin">+23.72</span>%</td> <td class="txtright bgyellow03"><span class="greenFin">+60</span></td> <td class="txtright">5,917,300</td> <td class="txtcenter yjSt"> <a href="http://textream.yahoo.co.jp/rd/finance/0002">掲示板</a></td></tr> <tr class="rankingTabledata yjM"> <td class="txtcenter">2</td><td class="txtcenter"> <a href="http://stocks.finance.yahoo.co.jp/stocks/detail/?code=0003.t">0003</a></td> <td class="txtcenter yjSt">マザーズ</td> <td class="normal yjSt">(株)リxアワールド</td> <td class="txtcenter grey yjSt">12/18</td> <td class="txtright bold">2,125</td> <td class="txtright bgyellow02"><span class="greenFin">+23.19</span>%</td> <td class="txtright bgyellow03"><span class="greenFin">+400</span></td> <td class="txtright">6,800</td> <td class="txtcenter yjSt"> <a href="http://textream.yahoo.co.jp/rd/finance/0003">掲示板</a></td></tr> <tr class="rankingTabledata yjM"> <td class="txtcenter">3</td> ~ *********************************************** ソースはこんな感です。 ↓私のクソ文章 $n = preg_match_all("{<tr class=\"rankingTabledata yjM\"><td class=\"txtcenter\">(.*)</td><td class=\"txtcenter\"><a href=.*>(.*)</a>}", $feed, $cell, PREG_PATTERN_ORDER); preg_match_allで配列に格納して表示させたいのですが、 うまくいきません。 echo "1位  " . $cell[1][0] . " " . $cell[1][1] . " " . $cell[1][2] .....??"\n"; echo "2位  " . $cell[1][1] . "\n" ?????; ~ ???3次配列ですか?? 混乱します。 ☆☆☆理想☆☆☆☆ 1位 2435 東証JQS (株)シダー 12/18 313 +23.72 % +60 5,917,300 2 位 3691 マザーズ (株)リアルワールド 12/18 2,125 +23.19% +400 6,800 ~ ☆☆☆☆☆☆☆☆☆ 取得した株価コードから別サイトを検索したいので 各項目ごとに別要素で表示させたいです。 ダメダメなので よろしくおねがいします。

    • ベストアンサー
    • PHP
  • 正規表現について VB6

    VB6で正規表現(Microsoft VBScript Regular Expression 5.5を使っているのですが、 (1) No001の場合、001を取得 (2) Noの場合は空文字を取得 したいのですが、どうすればよいのでしょうか? re.Pattern = "^No(.+)$" この場合、(1)の場合、マッチしますが(2)でマッチしません。 正規表現に詳しい方、VB6で正規表現をよく使う方、教えて下さい。

  • VB2005で、正規表現を使いたい

    VB2005で、正規表現を使いたいのですが、Basp21など使わずに.NET標準で備わっているPerl互換のようなものはありますか? VBで正規表現に詳しいサイトや書籍などありましたらご教授ください。

  • HTMLから正規表現で必要な情報を取得したい

    以下のようなHTMLがあり、PHPで正規表現を使い(A)~(J)の値を取得したいのですが、 どのような正規表現を書けば取得できるか迷っています。 正規表現でなくとも取得できる方法があればご教示ください。 どうかお願いいたします。 ※ちなみにPHP5です。 ---------------------------------------------------------- ~省略~ <tr bgcolor="#ffffff"> <td align="center">(A)<br></td> <td align="center">(B)<br></td> <td align="center">(C)<br></td> <td><a href="http://aaaaa.co.jp">(D)</a><br></td> <td align="right">(E)</td> <td align="right">(F)<br></td> <td align="right">(G)</td> <td align="right">(H)</td> <td align="right">(I)</td> <td align="center" nowrap><font color="#FFFFFF">(J)</font></td> </tr> ~省略~

    • ベストアンサー
    • PHP
  • C#で正規表現

    C#で、HTML形式で書かれた文字列から情報取得したいと思っています。 その際に使う文字列判別のための正規表現についてご助言ください。 現在、Regex.Replaceで、<>カッコに囲まれた部位は削除、残りの文字列を解析して情報取得しています。 これをHTMLのテーブル、つまり<td></td>※で囲まれた文字列を取得するよう仕様変更したいと思っています ※実際は<td width=・・・・>などとなります。 このサイトのページ最下部のC#ソースにありますような書き方をしようと思っています。 http://dobon.net/vb/dotnet/string/regexmatch.html 以上が、質問概要です。 私が正規表現を書いたとき分からなかった点は、 1.”(半角のダブルクォーテーション)の扱い・指定方法 2.<td></td>で囲まれた、というような表現の具体的な書き方 3.<td></td>内には<font>などのさらに<>で囲まれた部位が混入、その対処方法 参考までに、処理対象となるサイトはこちらになります。 http://www.traders.co.jp/stocks_data/data/brand_move/brand_move.asp 以上よろしくお願いいたします。

  • 正規表現について

    HTMLファイルを読み込み、特定の文字列にリンクを付けて出力したいのですが上手くいきません。 例: <img src="./seiki_hyougen.gif" alt="正規表現についての説明">更に正規表現を知りたい方は、<a href="special.html">正規表現の詳しい説明</a>をクリックして下さい。  ↓正規表現をキーワードにしてリンクを付けたい。 正:<img src="./seiki_hyougen.gif" alt="正規表現についての説明">更に<a href="seiki_hyougen.html">正規表現</a>を知りたい方は、<a href="special.html">正規表現の詳しい説明</a>をクリックして下さい。 誤:<img src="./seiki_hyougen.gif" alt="<a href="seiki_hyougen.html">正規表現</a>についての説明">更に<a href="seiki_hyougen.html">正規表現</a>を知りたい方は、<a href="special.html"><a href="seiki_hyougen.html">正規表現</a>の詳しい説明</a>をクリックして下さい。 尚、下記URLのサンプルを参考にしてスクリプトを作成しています。 http://php.oss.eznetsols.org/manual/ja/function.preg-split.php $r = preg_split('((\/a>)|(<a))', $html, -1, PREG_SPLIT_DELIM_CAPTURE); for ($i = 0; $i < count($r); $i++) { if ($r[$i] == "<a") { $i++; continue; } $r[$i] = preg_replace( "/(正規表現)/i", "<a href='seiki_hyougen.html'>\\1</a>", $r[$i] ); } return join("", $r); この(正規表現)の部分で上手い正規表現を使えばalt="×××"の中にリンクタグが入らないようにできるのでは?と思っているのですが・・・。 どうか、良い方法を教えて下さい。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • VBでの表現

    Perlでは以下のような正規表現をしたいのですが if($TextBox !~ /[a-zA-z0-9]){ ~~~ } VBではどのように正規表現をするのでしょうか よろしくお願いします

  • 正規表現で一発置換できるでしょうか?

    サイトにあるHTMLを読み込み、その中のリンク全てに target指定を追加して表示するPHPについてアドバイスをお願いします。 取込元のHTMLは↓な記述(全リンクにtarget指定は無い)  … <a href="http://bakubaku.com">ばくばく</a> …  … <a href="http://mogumogu.net">もぐもぐ</a> …  … <a href="http://karikari.org">かりかり</a> … これを、↓のように変換して出力したい  <a href="http://bakubaku.com" target="_brank">ばくばく</a>  <a href="http://mogumogu.net" target="_brank">もぐもぐ</a>  <a href="http://karikari.org" target="_brank">かりかり</a> とりあえず、  ・<a href…> のリストを preg_match_allで 抽出  ・要素数だけ 末尾の > を target="_brank"> に変換/入替 といった処理で結果は正しく出ますがパフォーマンス的に痛いですよね。 このような検索置換処理を、正規表現を使って、一発でできないものでしょうか? (すみません、、正規表現よく分かっていません、、)

    • ベストアンサー
    • PHP
  • sedを使ってHTMLファイルのタグを置き換えたいのですが、正規表現が

    sedを使ってHTMLファイルのタグを置き換えたいのですが、正規表現が上手く使いこなせなくて困っています。 実際のファイルには、<td class="style1" id="sequence1" >と書かれてある部分があり、これを<td>に置き換えたいのです。 それで、試しに sed -e 's/<td*>/<td>/g' ファイル名 と記述しましたが出来ませんでした。 正規表現の書き方が間違っているとは思うのですが、時間がなくお聞きすることにしました。 正しい書き方を教えて頂けますでしょうか。