まつもと ゆきひろです In message "[ruby-list:16213] Re: year of parsedate" on 99/08/19, Tadayoshi Funaba <tadf / kt.rim.or.jp> writes: |kikutani> うーん、前は同じプログラムが動いてたんですよ。 |kikutani> slanglibのサンプルのfm.rbというので、ファイルの生成日を |kikutani> 表示してたんで。すくなくとも1.2あたりでは。 | |なんか微妙に正規表現の解釈が違ってきているような気がします。 |以下のものも試してもらえません? ほぼ正解です。気が付くのが遅くてすいません。 以前、高速化のために「えせPOSIXマッチ(あきらめ悪いモード)」 を廃止したときの影響です。つまり、 \s*\s+ というパターンは以前だと後ろの\s+が前の\s*からマッチを取り返 して成功していましたが、今は\s*が全部の空白をぶんどってしまっ て\s+のための空白が残りませんから失敗します。 というわけで、私はこういう風にしてみました。 --- /tmp/parsedate.rb Thu Aug 19 12:58:25 1999 +++ lib/parsedate.rb Thu Aug 19 12:57:51 1999 @@ -29,3 +29,3 @@ end - if date.sub!(/(\d+):(\d+)(?::(\d+))?\s*(am|pm)?\s*(?:\s+([a-z]{1,4}(?:\s+[a-z]{1,4})?|[-+]\d{4}))?/i, ' ') + if date.sub!(/(\d+):(\d+)(?::(\d+))?(?:\s*(am|pm))?(?:\s+([a-z]{1,4}(?:\s+[a-z]{1,4})?|[-+]\d{4}))?/i, ' ') hour = $1.to_i