こんばんは、ZnZです。

正規表現をテキストファイルに保存するのにsourceだとまずいのでしょうか?
以下のようにどんどん長くなっていってしまいます。

また/#{a}/の結果がRegexp.new(a)の結果と違います。
変数をa,b,c,dと順番に変えていったときはRegexp.newと同じ結果になりました。
なぜなのでしょうか?


p a = '[/]'    # "[/]"
p b = /#{a}/   # /[\/]/
p b === '\\'   # nil

p a = b.source # "[\\/]"
p b = /#{a}/   # /[\\/]/
p a === '\\'   # nil

p a = b.source # "[\\\\/]"
p b = /#{a}/   # /[\\\/]/
p a === '\\'   # false

p a = b.source # "[\\\\\\/]"
p b = /#{a}/   # /[\\\\/]/
p a === '\\'   # false

p a = '[/]'         # "[/]"
p b = Regexp.new(a) # /[\/]/
p b === '\\'        # nil

p a = b.source      # "[\\/]"
p b = Regexp.new(a) # /[\\/]/
p b === '\\'        # nil

p a = b.source      # "[\\\\/]"
p b = Regexp.new(a) # /[\\\/]/
p b === '\\'        # 0

p a = b.source      # "[\\\\\\/]"
p b = Regexp.new(a) # /[\\\\/]/
p b === '\\'        # 0

--- 
ZnZ(ゼット エヌ ゼット)
西山和広(Kazuhiro Nishiyama)
mailto:nishiyama / mx1.tiki.ne.jp