In message <19980330130130O.dezawa / miya.fujifilm.co.jp> Sinichiro Dezawa <dezawa / miya.fujifilm.co.jp> writes: > if ( /([\d.]+)\s+([^:]*)\s*([:\s])+(\d+)/ ) ~~~~~~~~ -> ([:\s]+) では? `: ' 一つだ けマッチしても.... > @refs << $2 ~~~~~ -> 初期化していないインスタンス変数への操作.もとはクラス の一部だった? なんにせよ空の配列ででも初期化しないと 「nil はそんなメソッド知らない」と怒られます. > printf "%s%s <A HREF=\"#%s\">%s</A> %s %s\n", > $`,$1,$2,$2,$3.gsub(/\s:/,"."),$4 ~~~~~ -> /:\s/ では? 入力を見ると.でな いと最初の `:' が残りますが. という変更を加えると, <font size=4>目次 </font>1 コマンドリファレンスの見方 1 1.1 対応するプログラムのリビジョン: : : : : : : : : : : : : : : : : : : 1 に対して <font size=4>目次 </font>1 コマンドリファレンスの見方 1.1 対応するプログラムのリビジョン ................... という結果が得られます....なぜ $4 が出力されない (^^? ちなみに変更後 のプログラムは以下の通り: #!/usr/local/bin/ruby while( gets ) refs = [] if ( /([\d.]+)\s+([^:]*)\s*([:\s]+)(\d+)/ ) refs << $2 printf "%s%s <A HREF=\"#%s\">%s</A> %s %s\n", $`,$1,$2,$2,$3.gsub(/:\s/,"."),$4 elsif ( /([\d.]+)\s+([^:]*)\s+(\d+)/ ) printf "%s%s <A HREF=\"#%s\">%s</A> %s\n",$`,$1,$2,$2,$3 else print end end =========================================================================== 柳川 @ 情報システム学研究科 . 電気通信大学 katze / yuba.is.uec.ac.jp March 30, 1998 What is done can't be undone.