坂野 正明です。

At Fri, 11 Jan 2002 08:50:58 +0900,
m_seki / mva.biglobe.ne.jp wrote:
> htmlからbodyだけ(またはbodyの内側だけ)を取り出したいのですが、
> どんな方法があるでしょう?
> 
> なんちゃってでも良ければ正規表現なのかな。
> 正規表現だとどう書くのがいいでしょうか?

(釈迦に説法という気がしますが…、)
「議論の叩き台として」"なんちゃっての正規表現"版を投稿してみます。

	## body の内側を取り出す
	% ruby -e '/<body[^>]*>(.*)<\/body>/im =~ ARGF.read; print $1'


欠点は、思いつく限りで、

 1. <body> の前、または </body> の後ろに
	<!-- <body> <!-- <body> --> -->
    などのような"<body>"(など)を含むコメント文があると間違ってパースする。
  # 多重コメントはHTML4.01で認められていましたっけ?

  # この問題を回避するのは、簡単ではなさそうな。
  # もし簡単な方法があれば、後学のために知りたいです。

 2. UTF-16やUCS-4のようにUS-ASCIIと上位互換でない文字コードのファイル
    についてはそのままではだめ。

 3. 壊れたHTML(</body>がないとか)には対応できない場合がある (欠点??)。

というところでしょうか。

さかのまさあき