使用Ruby使用Regex验证字符串

使用Ruby使用Regex验证字符串,ruby,regex,Ruby,Regex,我必须验证一系列字符串:00001到01200 我想确保: 第一个数字是零 第二个数字必须是0或1 第三位数字必须为0、1或2 最后两个数字可以是任意数字 到目前为止,我已经得出了以下结论: ^(0|[0-1][0-2][0-9][0-9])$ 但是不起作用,你能告诉我正确的方向吗?非正则表达式解决方案使用: 非正则表达式解决方案使用: 正则表达式解决方案: /^0([0-1][0-1][0-9]{2}|1200)$/ /^0([0-1][0-1][0-9]{2}|1200)$/ =~ "01

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

我想确保:

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

到目前为止,我已经得出了以下结论:

^(0|[0-1][0-2][0-9][0-9])$
但是不起作用,你能告诉我正确的方向吗?

非正则表达式解决方案使用:

非正则表达式解决方案使用:

正则表达式解决方案:

/^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
非正则表达式解决方案使用:

非正则表达式解决方案使用:

正则表达式解决方案:

/^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

卸下
|
?它的意思是“或”,因此您可以匹配
0
[0-1][0-2][0-9][0-9]
。虽然问题还没有结束。此正则表达式也接受
01299
。稍作更改
^0[0-1][0-2][0]{2}$
。这只是另一个解决方案,
(<00001..01200”).grep(/^0[0-1][0-2][0]{2}$/)。空?
将帮助您检查是否有任何字符串落在该范围内。。。是否还要移动
|
?它的意思是“或”,因此您可以匹配
0
[0-1][0-2][0-9][0-9]
。虽然问题还没有结束。此正则表达式也接受
01299
。稍作更改
^0[0-1][0-2][0]{2}$
。这只是另一个解决方案,
(<00001..01200”).grep(/^0[0-1][0-2][0]{2}$/)。空?
将帮助您检查是否有任何字符串落在该范围内。。。alsoI不是ruby开发人员,但我必须承认这非常棒。@HamZa这是您需要将ruby添加到语言库中的原因,实际上这对
('00001'..'01200')不起作用。包括?('00300')#=>true
,但字符串
'00300'
应该被拒绝,如果我答对了问题的话。范围包括从1到1200的所有数字,都是带前导零的字符串。
的一些结果包括?
封面?
我发现比较有趣:
(“00001”。.300”)。包括?(“00300”)=>真的
(“0001”。.300”)。包括?(“00300”)=>假的
(“00001”。.1200”)。封面?(“00300”)=>true
(“1”。.1200”)。封面?(“00300”)=>false
(“00001”。.12”)。封面?(“00300”)=>true
=>false`,我不是一个ruby开发人员,但我必须承认这太棒了。@HamZa一个你需要将ruby添加到语言库中的原因。实际上,这并不像
('00001''01200')预期的那样有效。包括在内吗?('00300')#=>true
,但是如果我正确回答了问题,字符串
'00300'
应该被拒绝。范围包括1到1200之间的所有数字,都是带前导零的字符串。
的一些结果包括?
封面?
我发现比较有趣:
('00001.'300')。包括?('00300”)=>真
(“0001”。.300”)。包括((“00300”)=>假
(“00001”。.1200”)。封面?(“00300”)=>真
(“1”。.1200”)。封面?(“00300”)=>假
(“00001”。.12”)。封面?(“00300”)=>真
/^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