• ベストアンサー

正規表現での文字の抜き出し

HTMLの文の中から<form ~ > タグの開始から終了までを別の変数に抜き出すということをやりたいのですが、正規表現で可能でしょうか? 今まではindex substrの組み合わせでやっていたのですが、長くなりすぎて効率的とはいえません。 よろしくお願いいたします。

  • arlie
  • お礼率25% (14/54)
  • Perl
  • 回答数2
  • ありがとう数5

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

  • ベストアンサー
  • cocky
  • ベストアンサー率57% (232/402)
回答No.2

「.*」だと最長一致の文字列を取るため、複数<form>タグが現れるHTMLでは、個々のFormを抜き出すことができなくなるのでは? ここは最短一致を取る「.*?」を使って if( $a =~ /<form,*?>.*?<\/form>/i ) { (以下同じ) にした方がいいと思いますが。

その他の回答 (1)

noname#25358
noname#25358
回答No.1

 可能です。  変数 $a に文字列が入っていると仮定して、   if ( $a =~ /\<from .*\>.*\<\/from\>/i ) {    $b = $&;   }  これで、変数 $b に目的の文字列が入ります。

関連するQ&A

  • 正規表現について

    あるファイルを読み込んで中に変数($xxx)が入っていたら 正規表現にて$xxxの値に変換する事は出来ますでしょうか? 試行錯誤しているのですが、上手くいかず困っています。 変数を正規表現にてマッチングさせるのも上手くいかないです。 ご教授お願いいたします。

    • 締切済み
    • PHP
  • 正規表現

    変数$aのなかに変数$bが含まれていたらをperlの正規表現であらわすと どのようになるのでしょうか?if($a=~ /$b/)ではうまくいかないのですか?

    • ベストアンサー
    • Perl
  • PHP 正規表現改行したい

    preg_match でHTMLタグを解析するために正規表現を組んでますが、正規表現部分が長すぎてソースがわかりづらいので機能に影響すること無く改行して見やすくする方法はありますか? もしくはHTMLのパースならこうした方がいいよ的アドバイスでも

    • ベストアンサー
    • PHP
  • 正規表現の書き方を教えてください

    正規表現の書き方を教えてください 膨大なサイトデータに含まれる、忍者ツールズのアクセス解析タグを 複数行置換ツールを使って、一気に削除したいです 正規表現を使えば、以下のアクセス解析タグを削除できると思うのですが どのように正規表現を使って記述すれば、いいのかわかりません ・アクセス解析タグ中の「15695600k」 ・リンク先(http://futoko.jpnz.jp、kateikyousi.rentalurl.net) ・アンカーテキスト(不登校 高校、家庭教師) は、タグによって変化する変数です ■忍者ツールズのアクセス解析タグのソース例 http://analyze.ninja-web.net/ ■使用する複数行置換ツール http://www.vector.co.jp/magazine/softnews/060905/n0609051.html ※このツールでできない場合は、用件を満たすツールを教えていただけますと幸いです よろしくお願いいたします

  • 正規表現について

    アメブロから独自ブログへ引越しを行うことになったのですが、 ペタしてね というリンク画像を毎ページに張り付けており、この画像リンクを一括で削除したいと思っています。 HTMLタグのパラメータが微妙にばらついており、正規表現の利用が必要かなと思っています。 専用のプラグインをインストールし、正規表現を利用して削除できることが分かったのですが、 正規表現の方法を数時間勉強してみましたが、結局どうすればいいのかわかりません・・・ 削除する画像リンクは以下のようなものです。 <a href="http://.........................."><img height="100" alt="ペタしてね" src="http://stat.ameba.jp/blog/ucs/img/decoPeta/pc/decoPeta_18.gif" width="100" /></a> width や hight がページによって微妙に違うようです。 どちらさまか、上記のようなタグをマッチングさせる正規表現を教えていただけませんでしょうか。

    • ベストアンサー
    • PHP
  • 正しい正規表現を教えてください

    お世話になります。 正規表現で次のように指定しているのですが、正確か自信がありませんので 正しい表記を教えてください。 1.全てのHTMLタグ <.*?> 2.「2012.1.1」または「2012.01.01」のような数字の羅列 (\d{4}).(\d{1,2}).(\d{1,2}) 3.「<img src="~」から始まる部分 <img src=" 4.「<div class="release">」を含む部分 <div class="release"> 5.HTMLタグと文字全て ^.*$ 全て色々なサイトで調べて表記したのですが、処理に時間がかかってて間違っている気がします。 yahoo!pipesのregexモジュールの部分で使用していて、デバッガーのTime takenに時間がかかっている場合、正しくない正規表現が原因らしいのです。 どうぞ宜しくお願いします。

    • ベストアンサー
    • PHP
  • 正規表現でタグの中を除く文字をマッチングするには

    正規表現でタグの中を除く文字をマッチングするしたいのですが 良い方法はありますでしょうか。 例えば <a>のタグの中にない、"あい"を"かき"に変換したい。 <a>あいうえお</a>あいうえお ↓ <a>あいうえお</a>かきうえお という様にしたいのです。 正規表現では向かない処理かも知れませんが、 良い書き方ありましたら教えてください。

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

    Htmlのタグの属性を正規表現を用いて取得しようとしています。 たとえば <font size="2" face="MS 明朝"> の場合、 "2"と "MS 明朝" を取得したいのですが、 以下のように定義を "="から始まり、空白か">"迄と定義した所、 pattern = Pattern.compile("=(.*?)[ >]"); としてマッチングした所、 "2"と "MS がとれてしまいました。 "(ダブルクォーテーションの中の[ >](空白等)は判定しないような 定義に出来るのでしょうか。 宜しくお願いします。

    • ベストアンサー
    • Java
  • .htaccessの正規表現

    Perlの正規表現なら少しだけ知っています。 .htaccessの正規表現で、 <Files xx.gif> と <Files 'xx.gif'> は同じですか? <Files "xx.gif"> だと変数展開の動作をしようとするために上記の2つより多少重くなりますか? *.gifとerr.logを1つの<File>タグで記述する場合はどう記述すればよいですか?

  • 正規表現について

    正規表現について教えてください。 URLの指定をしたいのですが、その中からindex.htmlのみを除外したいのです。 例えば、 aaa.html aa1.html はあてはまるけれど、 index.html だけは除きたい、という場合です。 現在、 /([A-Za-z0-9]+)\.htm$ このように指定しており、これだと、index.htmlにもあてはまってしまいます。 この場合、どう指定すればよいのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう