迭代ruby哈希并选择正则表达式值

时间:2012-09-17 19:26:58

标签: ruby regex hash iterator

您好我遇到了意想不到的事情,无法在任何地方找到答案..

我有一个哈希:

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

当我像这样迭代哈希时:

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

如果值是regex / calendar / ....迭代器产生:

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

对此为何的任何想法?

谢谢!

2 个答案:

答案 0 :(得分:2)

(?-mix:calendar)是使用ruby时正则表达式的字符串表示形式。

>> a = /test(er)/
=> /test(er)/
>> print a.source
test(er)=> nil
>> print a
(?-mix:test(er))=> nil
>> 

答案 1 :(得分:2)

(?-mix:...)

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