0

嗨,我遇到了一些意想不到的事情,在任何地方都找不到答案..

我有一个哈希:

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

当我像这样遍历哈希时:

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

如果值是正则表达式 /calendar/ .... 迭代器产生:

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

关于为什么会这样的任何想法?

谢谢!

4

2 回答 2

2
(?-mix:...)

表示“对于这部分正则表达式,dotall 模式、不区分大小写模式和详细模式已关闭”(这是默认设置)。表示只是明确表示。

于 2012-09-17T19:30:51.777 回答
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 回答