Мне никогда не приходило в голову использовать регулярное выражение в качестве хеш-ключа.Я, честно говоря, не уверен, что это должно работать, и точно, как это будет работать, если оно должно.
В любом случае, две мысли:
- В ваших попытках поиска элемента, вы используете
hash
, но хэш называется myhash
. Если я поиграюсь с ним, я получу следующие результаты:
hektor ~ ❯❯ irb
>> myhash = {/(\d+)/ => "hello"}
=> {/(\d+)/=>"hello"}
>> myhash['2222']
=> nil
>> myhash[2222]
=> nil
>> myhash[/(\d+)/]
=> "hello"
Это использует Ruby 1.9.2-p180.
Хорошо, проверил и вот что работает:
myhash = {/foo/ => "hello"}
myhash[/foo/] # => "hello"
Поиск на ключ , иключ - это регулярное выражение, а не одно из многих возможных совпадений этого регулярного выражения.