特定给定范围的正则表达式" 001到150"

时间:2018-01-18 09:23:55

标签: regex

这是我尝试过的 但无法得到理想的结果。 情况1:

^(00[1-9]|0[1-9][0-9]|1[0-5][0-9])$

它接受范围从001-159,因为我给[0-9]

对于案例2:

^(00[1-9]|0[1-9][0-9]|1[0-50][0])$

接受110,120 ......和150,因为最后接受的数字是" 0"。

所需结果只能接受001-150 非常感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

如果可能的话,尝试将它们解析为整数,并使用您选择的编程语言进行范围检查。

除此之外,你的第一种方法是接近,只是将第3次更改限制为149,并将150作为单独的值添加,例如

^(00[1-9]|0[1-9][0-9]|1[0-4][0-9]|150)$

答案 1 :(得分:0)

您可以使用:

^(00[1-9])|(0[1-9]\d)|(1[0-4]\d)|(150)$

将匹配:

  • 00,然后是1-9
  • 0后跟1-9,后跟任意数字
  • 1后跟0-4和任何数字
  • 或150

这些组是互斥的,所以只有一个组匹配,如果有的话。