• ベストアンサー

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

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

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

  • ベストアンサー
  • 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