まつもと ゆきひろです
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