使用Ruby验证使用Regex的字符串

时间:2014-03-19 12:40:33

标签: ruby regex

我必须验证一系列字符串:00001到01200

我想确定:

第一个数字为零 第二个数字必须为0或1 第三位必须是0,1或2 最后两个数字可以是任何数字

到目前为止,我已经想出了这个:

^(0|[0-1][0-2][0-9][0-9])$

但是没有用,你能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:4)

使用Range#include?的非正则表达式解决方案:

("00001".."01200").include?("00002")
#=> true

使用Range#cover?的非正则表达式解决方案:

("00001".."01200").cover?("00002")
#=> true

正则表达式解决方案:

/^0([0-1][0-1][0-9]{2}|1200)$/
/^0([0-1][0-1][0-9]{2}|1200)$/ =~ "01200"
=> 0
 /^0([0-1][0-1][0-9]{2}|1200)$/ =~ "00300"
=> nil