0

こんにちは私は予期しない何かに出くわしました、そしてどこにも答えを見つけることができません。

私はハッシュを持っています:

hash = {:thiskey => /value/, :anotherkey => /anothervalue/}

このようにハッシュを反復処理すると、次のようになります。

hash.each do |key, value| 
   puts key
   puts value
end

値がregex/calendar / ....の場合、イテレータは次を生成します。

>>> thiskey
>>>(?-mix:calendar)

これがなぜであるかについて何か考えはありますか?

ありがとう!

4

2 に答える 2

2

これ(?-mix:calendar)は、rubyを使用する場合の正規表現の文字列表現です。

>> a = /test(er)/
=> /test(er)/
>> print a.source
test(er)=> nil
>> print a
(?-mix:test(er))=> nil
>> 
于 2012-09-17T19:29:50.110 に答える
2
(?-mix:...)

「正規表現のこの部分では、dotallモード、大文字と小文字を区別しないモード、および冗長モードがオフになっています」(デフォルト)を意味します。表現はそれを明示的にしているだけです。

于 2012-09-17T19:30:51.777 に答える