From: Tadayoshi Funaba Date: 2000-04-01T20:03:08+09:00 Subject: [ruby-dev:9544] Re: parsedate2 ふなばです。 ちょっと直したので、パッチです。 --- parsedate3.rb 2000/03/26 11:55:40 1.1 +++ parsedate3.rb 2000/04/01 03:17:01 @@ -1,3 +1,3 @@ # parsedate3.rb: Written by Tadayoshi Funaba 2000 -# $Id: parsedate3.rb,v 1.1 2000/03/26 11:55:40 tadf Exp $ +# $Id: parsedate3.rb,v 1.2 2000/04/01 03:16:56 tadf Exp $ @@ -10,3 +10,3 @@ } - MONTHPAT = MONTHS.keys.sort.reverse.join('|') + MONTHPAT = MONTHS.keys.join('|') @@ -16,3 +16,3 @@ } - DAYPAT = DAYS.keys.sort.reverse.join('|') + DAYPAT = DAYS.keys.join('|') @@ -32,2 +32,3 @@ ([ap])\.?m\.? + \b )? @@ -40,2 +41,3 @@ ) + \b )? @@ -64,15 +66,14 @@ year = $3.to_i if $3 - end # us - if date.sub!( - /(#{MONTHPAT})\S* - \s+ - (\d+)\S* - (?: - \s+ - (\d+) - )? - /inox, - ' ') + elsif date.sub!( + /(#{MONTHPAT})\S* + \s+ + (\d+)\S* + (?: + \s+ + (\d+) + )? + /inox, + ' ') mon = MONTHS[$1.downcase] @@ -80,6 +81,5 @@ year = $3.to_i if $3 - end # iso - if date.sub!(/(\d+)-(\d+)-(\d+)/no, ' ') + elsif date.sub!(/(\d+)-(\d+)-(\d+)/no, ' ') year = $1.to_i @@ -88,6 +88,5 @@ mday, mon, year = year, mon, mday if $3.size >= 4 - end # jis - if date.sub!(/([MTSH])(\d+)\.(\d+)\.(\d+)/no, ' ') + elsif date.sub!(/([MTSH])(\d+)\.(\d+)\.(\d+)/no, ' ') e = { 'M'=>1867, @@ -97,7 +96,6 @@ }[$1] - year, mon, mday = ($2.to_i + e), $3.to_i, $4.to_i - end + year, mon, mday = $2.to_i + e, $3.to_i, $4.to_i # vms - if date.sub!(/(\d+)-(#{MONTHPAT})\S*-(\d+)/ino, ' ') + elsif date.sub!(/(\d+)-(#{MONTHPAT})\S*-(\d+)/ino, ' ') mday = $1.to_i @@ -106,6 +104,5 @@ year, mon, mday = mday, mon, year if $1.size >= 4 - end # sla - if date.sub!(%r|(\d+)/(\d+)(?:/(\d+))?|no, ' ') + elsif date.sub!(%r|(\d+)/(\d+)(?:/(\d+))?|no, ' ') mon = $1.to_i @@ -114,23 +111,23 @@ year, mon, mday = mon, mday, year if $1.size >= 4 - end # ddd - if date.sub!( - /(\d{4,14}) - (?: - \s* - T? - \s* - (\d{2,6}) - )? - (?: - \s* - ( - Z - | - [-+]\d{2,4} - ) - )? - /nox, - ' ') + elsif date.sub!( + /(\d{4,14}) + (?: + \s* + T? + \s* + (\d{2,6}) + )? + (?: + \s* + ( + Z + | + [-+]\d{2,4} + ) + \b + )? + /nox, + ' ') case $1.size ふなば ただよし