我必须验证一系列字符串:00001到01200
我想确定:
第一个数字为零 第二个数字必须为0或1 第三位必须是0,1或2 最后两个数字可以是任何数字
到目前为止,我已经想出了这个:^(0|[0-1][0-2][0-9][0-9])$
但是没有用,你能指出我正确的方向吗?
答案 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