RegEx匹配特定范围内的2位数字

时间:2015-10-19 23:50:19

标签: regex

我需要创建一个RegEx来验证输入到文本框的字符串是否正好是2位数,并且在01-25或99范围内。

我是创建自己的RegEx的新手,并想出了:

[01-25,99]{2}

这将验证该数字是否为2位数,但它会在指定范围之外找到许多匹配项。

5 个答案:

答案 0 :(得分:3)

字符类可以包含字符范围,而不是范围。

尝试这种替换:

0[1-9]|1\d|2[0-5]|99

如果您想限制整个输入,请填写^$

^0[1-9]|1\d|2[0-5]|99$

答案 1 :(得分:2)

这应该有效:

 # ^(?:0[1-9]|1\d|2[0-5]|99)$

 ^ 
 (?:
      0 [1-9] 
   |  1 \d 
   |  2 [0-5] 
   |  99
 )
 $

答案 2 :(得分:1)

也许像哑巴一样愚蠢(0 [1-9] | 1 [0-9] | 2 [0-5] | 99)

答案 3 :(得分:1)

正则表达式的工作方式是单个数字,而不是像你想象的那样。这意味着您的模式:

[01-25,99]

实际上会匹配任何有0,1-2,5,逗号或9(说它两次没有区别)的东西,并且放置`{2}意味着你匹配任何连续包含这两个字符串的字符串。

因为我在输入时已经回答了这个问题,所以请查看发布的图案sln是否应该有效。

答案 4 :(得分:0)

也喜欢这个 [0] [1-9] | [1] [0-9] | [2] [0-5] | [99]