From: "とみたまさひろ" Date: 2006-11-10T01:41:02+09:00 Subject: [ruby-dev:29914] StringScanner#scan BUG? とみたです。 Ruby 1.8.5 で次のコードを実行すると、$KCODE="NONE" かつ正規表現のフラ グが e, s, u の場合に、"a:b" を返します。 require "strscan" str = "a:b" ["NONE", "EUC", "SJIS", "UTF8"].each do |code| p code $KCODE = code p StringScanner.new(str).scan(/[^\x01\:]+/n) p StringScanner.new(str).scan(/[^\x01\:]+/e) p StringScanner.new(str).scan(/[^\x01\:]+/s) p StringScanner.new(str).scan(/[^\x01\:]+/u) end [^\x01\:] を [^\:\x01] にすると発生しません。期待どおり "a" を返します。 はじめは Ruby 本体の正規表現のバグかと思ったのですが、StringScanner 以 外では発生しないようです。 -- とみたまさひろ 『Postfix辞典』ISBN:4798110353 3469 42CC 4D32 F53C AD98 65A5 8C37 FF09 69C1 6040