我需要在Ruby(实际上是Rails)程序中匹配正则表达式中的md5校验和。我发现某处我可以将十六进制字符串与\h
序列匹配,但我找不到该链接了。
我正在使用该序列,我的代码在Ruby 1.9.2中工作。我甚至可以在普通的IRB下工作(所以它不是Rails扩展)。
ruby-1.9.2-p180 :007 > "123abcdf" =~ /^\h+$/; $~
=> #<MatchData "123abcdf">
ruby-1.9.2-p180 :008 > "123abcdfg" =~ /^\h+$/; $~
=> nil
然而,我的IDE将该表达标记为错误,我找不到引用该序列的任何引用。
\h
序列在Ruby Regex中是否在任何环境/版本下是合法的,还是我应该相信我的ide并将其替换为[abcdef\d]
之类的内容?
答案 0 :(得分:11)
是的。查看the official doc以获取Ruby中正则表达式的完整文档。
请注意,\h
也会匹配大写字母,因此它实际上等同于[a-fA-F\d]
答案 1 :(得分:4)
根据this \ h是oniguruma的一部分,我认为这是红宝石1.9的标准。