• ベストアンサー

VB2010でのHTMLタグ抽出

textboxに入力されている <PRE></PRE>タグで囲まれた文字列を抽出したいのですが、 全くの素人なので、いろいろ教えてください。 <html> <body> <PRE> abc abc </PRE> </body> </html>

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

(?<=<pre>).*?(?=</pre>) これを大文字小文字区別しない、複数行に対してやる、を条件に、 正規表現で抽出すればよいのでは。 http://msdn.microsoft.com/ja-jp/library/b49yw9s8(v=vs.80).aspx http://msdn.microsoft.com/ja-jp/library/system.text.regularexpressions.regexoptions(v=vs.80).aspx

IrohaKujoh
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • RubyのHTMLパーサーで複数のタグを抽出したい

    現在、Rubyを用いて あるWebページから特定のタグの要素を抽出して テキストデータに出力したいと思い、プログラムを書いているのですが、 途中で行き詰ってしまいました。 ちなみにHpricotやNokogiriといったHTMLパーサーを試してみました。 パーサーを使うのは初めてです。 例えば以下のようにHTML文書に抽出したい部分がDIVタグとPタグに囲まれていた場合、 ===================================== ・・・ <div class="content"> <div class="header">不要部分</div> <div class="title">抽出したい文字列1</div> <div class="subtitle">抽出したい文字列2</div> <div class="subtitle">抽出したい文字列3</div> <p class="paragraph">抽出したい文字列4</p> <p class="paragraph">抽出したい文字列5</p> <div class="comment">抽出したい文字列6</div> <div class="footer">不要部分</div> </div> ・・・ ===================================== このHTMLからまずは 抽出したい文字列1 抽出したい文字列2 抽出したい文字列3 抽出したい文字列4 抽出したい文字列5 抽出したい文字列6 といった出力が得たいのです。 プログラムも書いてみました。 ===================================== #ドキュメント全体を取得(dataにはHTMLの文字列が入っている) html = Hpricot(data) #内容部分(contentクラスのdiv)を取得(CSSセレクタで記述) content = html/"div.content" ===================================== ここまでは良いのですが、 そのあと、div要素を取り出すだけであれば headerクラスと、footerクラスを抽出しないように ===================================== (content/"div:not(.header):not(.footer)").each{ |line| puts line.inner_html } ===================================== とすることで、 抽出したい文字列1 抽出したい文字列2 抽出したい文字列3 抽出したい文字列6 が得られますが、pタグをカンマでdivの前に追加して ===================================== (content/"p,div:not(.header):not(.footer)").each{ |line| puts line.inner_html } ===================================== のようにすると、 抽出したい文字列4 抽出したい文字列5 抽出したい文字列1 抽出したい文字列2 抽出したい文字列3 抽出したい文字列6 のように出力されます。 同様にdivの後にpを追加し ===================================== (content/"div:not(.header):not(.footer),p").each{ |line| puts line.inner_text } ===================================== のようにすると 抽出したい文字列1 抽出したい文字列2 抽出したい文字列3 抽出したい文字列6 抽出したい文字列4 抽出したい文字列5 のようになってしまいます。 つまり、複数のタグを指定すると、指定した順序で抽出されるようです。 代わりに子供すべてを列挙するchildのようなものがあるかと、調べてみたのですが、 どうやらそのような書き方はないようです。 複数のタグを含む場合にはHTMLパーサーでは解析できないのでしょうか。 パーサーは抽出時に順番を保証はしてくれないのでしょうか。 あきらめて、正規表現で抽出しようと思いましたが、 ===================================== <div class="comment"> <div class="comment_header">ごちゃごちゃ</div> <div class="comment_body">抽出したい要素6</div> </div> ===================================== などDIVが入れ子となっている場合に、 非常にややこしく感じたので お手上げ状態です。 どのように、解決できるでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Ruby
  • HTMLタグ内文字を抽出するには

    HTMLタグ内の特定<title>タグ内文字列のみをエクセルマクロで抽出する方法はありますか? またエクセルのURL一覧の横に結果を表示させたいです。 宜しくお願い致します。

  • VB Windowsアプリ TextBoxについて

    Visual BasicでWindowsフォームアプリケーションを作っています。 下記のようなフォームがあり, ・1つのフォームにTextBoxとButtonが1つずつある ・TextBoxのTextは空 ・ButtonのTextは"abc" 下記のような動作をさせたいです。 ・Buttonをクリックすると,TextBoxにabcが追加で入力される ただし,AppendTextメソッドを使って文字列の末尾に入力するのではなく, ・入力カーソルが文字列の途中にあれば,そこにabcが入力される ・一部の文字列が選択されていれば,その文字をabcに置き換える のような,直接キーボードからabcを入力するときと同じような動作をしてほしいのです。 分かりにくいかもしれませんが,どのようにすれば実現できるか教えてください。

  • HTMLタグの中味抽出

    HTMLのタグの中味を抽出する正規表現として、以下の形を学びました。 [^<]+?(?=>) この正規表現で以下のHTML文を処理すると、 <tag_nakami_1><tag_nakami_2>title_text</tag_nakami_1></tag_nakami_2> 以下の結果が出ました。 tag_nakami_1 tag_nakami_2 /tag_nakami_1 /tag_nakami_2 ですが、なぜ、「title_text」の部分がうまく取り除かれたのかがわかりません。 <tag_nakami_1><tag_nakami_2> まで処理がすんで、次は title_text</tag_nakami_1> が処理対象の文字列となるのでは無いでしょうか?その場合、末尾の > より前の部分、title_text</tag_nakami_1 から < のみが除かれた文字列、title_text/tag_nakami_1 が抽出される、つまり以下のような結果が出そうに思えます。 tag_nakami_1 tag_nakami_2 title_text/tag_nakami_1 /tag_nakami_2 ですが実際はそうなりません。 これはなぜなのでしょうか……。

  • vb2019でHTMLの取得

    VB2010 フォームアプリでHTMLファイルから 任意のタグで囲まれた部分(例えば<body></body>内)を TEXTBOXに格納したいと思いますが、 いろいろ調べても「これだ」というものが見つかりませんでした。 皆さんの知恵を貸してください。

  • phpのHTMLからのRSS linkタグ抽出

    こんにちは phpを使ってrssを配信している サイトのhtmlデータを取得し、 rssのリンクが書いてある<link>タグを抽出しようとしています。 preg_matchなどを使った抽出の時に使っている正規表現は一応、 |.*<link rel=[\"\']alternate[\"\'](.*rss.*xml.*)?>|s なのですが、上記のrss xmlという文字列の順序や、 rssのバージョンを考えずに取得できる方法、 タグ内の他の属性値、属性値の順序など、 人によって書き方が異なり、 取得が難しいです。 これ以外の、より簡単な取得方法や、抽出におけるよい正規表現を知っておられる方、 どうか抽出方法を教えていただけませんでしょうか?

  • HTMLのPREタグについて

    HTML初心者です。 JavaScript等を使用して、テキストエリアにある文字列をボタンを押すとPREタグ内に表示するような 簡単なアプリケーションを作成しようと思っています。 用途はコードシンタックスハイライトができるようにしたいからです。 色々と試してみたのですが、うまくいきませんでした。 (シンタックスハイライトの機能が反映されない) 大変申し訳ありませんが、ご指導よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • VBAを使ってHTMLソースから特定の文字列を抽出したいと思っています

    VBAを使ってHTMLソースから特定の文字列を抽出したいと思っています。 正規表現を利用してタグに挟まれた文字を抽出したいのですがうまくいきません。 タグごと抽出する方法でも構わないので教えてください。 例えば <a href="www.yahoo.com△">○○○</a>   ・・・<1> ※△は(www.yahoo.com)+(半角数字1文字) ※○○○は1文字以上の全角文字 このようなパターンの文字列(<1>を丸ごと)を抜き出すには どのような正規表現を書けばよいでしょうか? 単に<a href ではじまって </a>  で終わる文字列であれば <a href.*</a> で良いと思うのですが、もう少し範囲を絞れば目的の文字列だけを抽出できるので ぜひ実現させたいと思っています。宜しくお願いします。

  • HTMLのinputタグに入力された文字列の中にHTMLのタグが

    HTMLのinputタグに入力された文字列の中にHTMLのタグが 含まれたらjavascriptでalertを出すようにしたいのですが、 どのようにしたらよいかお分かりの方いましたら、 どうか教えてください。 お願いいたします。

  • VB2008 正規表現でHTMLタグを"大文字→小文字"に置換したい

    Visual Basic 2008使用のプログラミング初心者です。 HTMLタグを大文字から小文字に置換するアプリケーションを作成中なのですが記述が間違っているのか、文字列を置換することが出来ません。 以下ソースです。     TextBox1.Text = Regex.Replace(TextBox1.Text, _       "<([\/]?)([\w]+)", _       "$1\L$2") http://dobon.net/vb/dotnet/string/regexreplace.html http://www37.atwiki.jp/emeditor/pages/50.html#id_6996d4b6 この二つのサイトを参考にやってみたのですが 置換を実行すると <BR> → \LBR> こうなってしまいます。 小文字に置換されるようにするにはどこを直せばよいのでしょうか。 教えてください、よろしくお願いします。