Question: Say I have a hash like: 

```
h = { '0' => 'foo', 'bar' => 'baz' => '2' => 'yada'  }

```

How would I go about determining if this hash has any numeric keys in it and pulling out the values of those keys?

Answer: 
Another solution:

```
h.select {|k,v| k.to_i.to_s == k}.values

```

This returns the values for keys that are integers (positive or negative).
If "numeric" means integer then:

```
a = h.each_with_object([]) { |(k, v), a| a << v if(k.to_i.to_s == k) }

```

If "numeric" also includes floating point values then:

```
h.each_with_object([]) { |(k, v), a| a << v if(k =~ /\A[+-]?\d+(\.\d+)?\z/) }

```

For example:

```
>> h = { '0' => 'foo', 'bar' => 'baz', '2' => 'yada', '-3.1415927' => 'pancakes' }
=> {"0"=>"foo", "bar"=>"baz", "2"=>"yada", "-3.1415927"=>"pancakes"}
>> h.each_with_object([]) { |(k, v), a| a << v if(k =~ /\A[+-]?\d+(\.\d+)?\z/) }
=> ["foo", "yada", "pancakes"]

```

You might want to adjust the regex test to allow leading and trailing whitespace (or not).