安達@沖データと申します。 奇妙な動作を見付けたので、報告しときます。動作環境はこれ↓です。 % ruby --version ruby 1.8.1 (2004-03-02) [i386-freebsd5.2] (1) 無意味なバックスラッシュを入れると数が合わない? irb(main):010:0> " \ab\de\ff" => " \abde\ff" これって、" abdeff"か" \ab\de\ff"かのどちらかになって欲しい気がします。 もちろんlengthで数えると長さは7です。 (2) gsubが正しく動いていない??? irb(main):001:0> " \\ab\\de\\ff".gsub(/\\([a-f][a-f])/o, "\\1") => " abdeff" これは、予想通り。 irb(main):002:0> " \\ab\\de\\ff".gsub(/\\([a-f][a-f])/o, "\\1".to_i(16).chr) => " \000\000\000" これは、おかしい。 irb(main):003:0> " \\ab\\de\\ff".gsub(/\\([a-f][a-f])/o) { | c | irb(main):004:1* c.to_i(16).chr irb(main):005:1> } => " \000\000\000" これも、おかしい。 ちなみに、 irb(main):009:0> " abdeff".gsub(/([a-f][a-f])/o, "\\1".to_i(16).chr) => " \000\000\000" これもやっぱりおかしいけれど、 irb(main):010:0> " abdeff".gsub(/([a-f][a-f])/o) { | c | irb(main):011:1* c.to_i(16).chr irb(main):012:1> } => " \253\336\377" これなら予想通り。 #なんなんでしょう? -- *------* |人∧鷲| 安達 淳@個人回線 | <女> | Via Asahi-net |牛∨獅| adachi / jun.email.ne.jp *------*