Rubyで遊び始めたばかりで、何かに行き詰まっています。casefold attribute
インスタンス化された後にRegexpオブジェクトを変更するためのトリックはありますか?
私が試した最良のアイデアは次のとおりです。
irb(main):001:0> a = Regexp.new('a')
=> /a/
irb(main):002:0> aA = Regexp.new(a.to_s, Regexp::IGNORECASE)
=> /(?-mix:a)/i
しかし、以下のどれもうまくいかないようです:
irb(main):003:0> a =~ 'a'
=> 0
irb(main):004:0> a =~ 'A'
=> nil
irb(main):005:0> aA =~ 'a'
=> 0
irb(main):006:0> aA =~ 'A'
=> nil
私が理解できないことがここで起こっています。'i'は8行目でどこに行きましたか?
irb(main):07:0> aA = Regexp.new(a.to_s, Regexp::IGNORECASE)
=> /(?-mix:a)/i
irb(main):08:0> aA.to_s
=> "(?-mix:a)"
irb(main):09:0>
Ruby1.9.3を使用しています。
私はまた、以下のコードを理解することができません:なぜ戻るのかfalse
:
/(?i:a)/.casefold? #=> false