情報科学概論
2001.7.10の復習課題に関するヒント
現在表示しているこのページのソースをNetscapeにより開いて、それをコピーして
保存する。名前はtask7-10.htmlとする。その保存したソースデータから<head></head>タグ
に囲まれた部分を全て消去し、続いて、HTMLタグを取り除いてタグの部分をスペー
スに変更し、通常のテキストファ
イルに変更するスクリプトを作成して、
task7-10.rbと名前をつけ、メールに添付して提出すること。なお、動作は以下
のようなコマンドで行うこととする。
$ ruby task7-10.rb task7-10.html > task7-10.txt
構成としては、while によりテキストを1行ずつ読み込み、ヘッダ部分を
gsub により取り除いたものを変数に格納し、その変数に対して、タグの除去および
> 記号の処理を同様に gsub で行うようなものが考えられる。
次にタグのスペース置き換えについては、ページのタグの中を良く見てどのような
文字が使われているかを確認し、その正規表現を考える。0-9までの数字、アルファ
ベットの大文字小文字は当然として、それ以外の記号やスペースをどう表現するか
が問題である。また、それらのどれかを含むと言う意味を持つ [ ] で括
ることになる。また、それの任意回数の繰り返しである。
以下に注意点を列挙する。
課題
ヒント
適当なエディタを開いておいて、Netscapeで表示されているソースの全範囲をマウ
スでドラッグした後、エディタ上でマウスの中ボタンをクリックすることによりペー
スト(張り付け)できる。そうしたら、そのファイルをtask7-10.htmlと名前をつけて保
存する。
webページは通常のテキストにタグと呼ばれる制御文字を埋め込んで、ページ表現
ができるようになっている。そのタグは<と>に囲まれた英数字記号という形
式である。今回取り除くのはその部分である。
ヘッダとはページを表示する際には画面に現れない領域のことである。唯一、ペー
ジのタイトルとしてウィンドウのバーに現れているものがあるが、それ以外は表示
されない。タグとしては<head>と</head>に囲まれた範囲であり、本
日の課題では処理は3つの段階に分けられ、ヘッダ部分全てをまず削除した後に通常
のタグをスペースに置き換え、さらに一ヶ所HTML内でリダイレクトの記号
> を使用している部分を通常のものに戻すという
手順となる。
文字列の削除や置換の指定は正規表現を使用する。ヘッダ部分は上に挙げたタグの
範囲内全てを削除するだけなので、任意の文字の任意回数の繰り返し、で表現され
る。( .* )それを無文字列 " " に置換することが削除の意味である。
課題ページに戻る