我刚刚开始玩 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
我不明白的事情正在这里发生。第 8 行的“i”在哪里?
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>
我正在使用 Ruby 1.9.3。
我也无法理解以下代码:为什么要返回false
:
/(?i:a)/.casefold? #=> false