如果我在 1.8.7 控制台中运行它:
$ irb-ruby-1.8.7-p330
1.8.7 :001 > "0a" =~ /\h\h/
=> nil
如果我在 1.9.2 控制台中运行相同的:
$ irb-ruby-1.9.2-p290
1.9.2p290 :001 > "0a" =~ /\h\h/
=> 0
:/
如果我在 1.8.7 控制台中运行它:
$ irb-ruby-1.8.7-p330
1.8.7 :001 > "0a" =~ /\h\h/
=> nil
如果我在 1.9.2 控制台中运行相同的:
$ irb-ruby-1.9.2-p290
1.9.2p290 :001 > "0a" =~ /\h\h/
=> 0
:/
没错,\h
标准 Ruby 1.8.7 正则表达式库似乎无法识别。这可以使用Rubular来确认。如果您的代码需要 1.8 兼容性而不使用任何额外的 gem,我认为您唯一的选择是使用等效的字符类[0-9a-fA-F]
。