From: Masaaki Sakano Date: 2002-01-12T03:00:57+09:00 Subject: [ruby-list:33320] Re: HTML から BODY を抜き出す 坂野 正明です。 At Fri, 11 Jan 2002 08:50:58 +0900, m_seki@mva.biglobe.ne.jp wrote: > htmlからbodyだけ(またはbodyの内側だけ)を取り出したいのですが、 > どんな方法があるでしょう? > > なんちゃってでも良ければ正規表現なのかな。 > 正規表現だとどう書くのがいいでしょうか? (釈迦に説法という気がしますが…、) 「議論の叩き台として」"なんちゃっての正規表現"版を投稿してみます。 ## body の内側を取り出す % ruby -e '/]*>(.*)<\/body>/im =~ ARGF.read; print $1' 欠点は、思いつく限りで、 1. の前、または の後ろに --> などのような""(など)を含むコメント文があると間違ってパースする。 # 多重コメントはHTML4.01で認められていましたっけ? # この問題を回避するのは、簡単ではなさそうな。 # もし簡単な方法があれば、後学のために知りたいです。 2. UTF-16やUCS-4のようにUS-ASCIIと上位互換でない文字コードのファイル についてはそのままではだめ。 3. 壊れたHTML(がないとか)には対応できない場合がある (欠点??)。 というところでしょうか。 さかのまさあき