【发布时间】:2011-10-03 04:44:52
【问题描述】:
我需要在 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 将该表达式标记为错误,并且我找不到任何引用该序列的参考。
在任何环境/版本下,Ruby Regex 中的 \h 序列是否合法,还是我应该相信我的 ide 并将其替换为 [abcdef\d] 之类的东西?
【问题讨论】:
-
你应该检查 /\A\h+\Z/ 见sakurity.com/blog/2015/06/04/mongo_ruby_regexp.html