From: UENO Katsuhiro Date: 2003-01-22T18:22:10+09:00 Subject: [ruby-dev:19417] Re: [] 内での \001 のマッチ うえのです。 On Wed, 22 Jan 2003 17:40:40 +0900 matz@ruby-lang.org (Yukihiro Matsumoto) wrote: > えーと、じゃなくてRubyの正規表現は数値表記が現れるとマルチバ > イトの一部にもマッチするという凶悪な仕様になってます。将来は > この仕様はなくなるとは思いますが、今この時点でなくすのは互換 > 性の観点から恐いので鬼車に移行する時点にしましょう。 ということは、こうなるべきなんですね。 p "\xc2\x80".scan(/[\200]/u) # => ["\200"] p "\xc2\x80".scan(/\200/u) # => ["\200"] p "\xc3\x83".scan(/[\303]/u) # => ["\303"] p "\xc3\x83".scan(/\303/u) # => ["\303"] # \200 = \x80, \303 = \xc3, "\xc3\x83" = U+00C3 ちなみに現状はこうです。 % ruby -v test.rb ruby 1.6.8 (2002-12-24) [i686-linux] ["\302\200"] ["\200"] ["\303\203"] ["\303"] % ./ruby -v test.rb ruby 1.8.0 (2003-01-21) [i686-linux] ["\302\200"] ["\200"] ["\303\203"] ["\303"] > で、私のパッチはこんな感じです。 これだと [ruby-dev:19380] のテストのいくつかが失敗してしまいます。 もう少し検討してみます。 -- ---- - - - -- - うえの かつひろ