From: Urabe Shyouhei Date: 2008-10-18T01:05:25+09:00 Subject: [ruby-dev:36771] Re: [Bug #650] Marshal.load raises RegexpError 卜部です。 Yukihiro Matsumoto さんは書きました: > 1.9では正規表現に\uが増えたからですね。 > > 厳密に言うとmarshalに上位互換性がないのでmarshalのメジャーバー > ジョンを変化させるべきなのかもしれませんが、メリットよりもデ > メリットの方が大きいのでそれはしない方向を考えてます。 > ちなみにどういうデメリットですか? > で、1.8の方のregexpに手を入れて「\u」は「u」に正規化しようと > 思います。そうすると、上のだと > > C:\Documents and Settingsurabe > > になってしまうわけですが、もともと\Dは[0-9]という意味で、上の > 正規表現はもともとパスにはマッチしないんで、これはこういうも > のだと思ってください。バックスラッシュを含むパターンはちゃん > と\\に変換してくださいということで。 今後Marshal.loadされる場合に関しては特に問題が思い浮かばないのでいいん じゃないかと思いますが、すでに作ってしまったPStoreデータベースが困りま す、というか、手元で読めなくて若干困っているわけです。なにか(スクリプト 側ででもかまわないので)既存のMarshal済みデータに対するworkaroundみたいな ものはないでしょうか。