Regex 特定给定范围的正则表达式“;001至150“;

Regex 特定给定范围的正则表达式“;001至150“;,regex,Regex,这是我试过的 但却无法达到预期的效果。 案例1: 它的接受范围为001-159,正如我给出的[0-9] 对于案例2: ^(00[1-9]|0[1-9][0-9]|1[0-50][0])$ 它接受110,120。。。150作为最后接受的数字是“0” 预期结果应仅接受001-150 非常感谢你的帮助 您可以使用: ^(00[1-9])|(0[1-9]\d)|(1[0-4]\d)|(150)$ 哪一个匹配: 00后接1-9 0后跟1-9后跟任意数字 1后跟0-4和任意数字 或150 这些组相互

这是我试过的 但却无法达到预期的效果。 案例1:

它的接受范围为001-159,正如我给出的[0-9]

对于案例2:

^(00[1-9]|0[1-9][0-9]|1[0-50][0])$
它接受110,120。。。150作为最后接受的数字是“0”

预期结果应仅接受001-150 非常感谢你的帮助

您可以使用:

^(00[1-9])|(0[1-9]\d)|(1[0-4]\d)|(150)$
哪一个匹配:

  • 00后接1-9
  • 0后跟1-9后跟任意数字
  • 1后跟0-4和任意数字
  • 或150
这些组相互排斥,因此只有一个组应该匹配(如果有的话)。

您可以使用:

^(00[1-9])|(0[1-9]\d)|(1[0-4]\d)|(150)$
哪一个匹配:

  • 00后接1-9
  • 0后跟1-9后跟任意数字
  • 1后跟0-4和任意数字
  • 或150

这些组是互斥的,因此只有一个组应该匹配(如果有的话)。

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

除此之外,您的第一种方法非常接近,只需将第三种方法限制为149,并添加150作为单独的值,如

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

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

除此之外,您的第一种方法非常接近,只需将第三种方法限制为149,并添加150作为单独的值,如

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

^(00[1-9]| 0[1-9][0-9]| 1[0-4][0-9]| 150)$在大多数情况下,我不会用正则表达式来处理这个问题。大致如下:
length(x)==3&&Integer(x)>=1&&Integer(x)^(00[1-9]| 0[1-9][0-9]| 1[0-4][0-9]| 150)$对于大多数情况,我不会使用正则表达式。类似于:
length(x)==3&&Integer(x)>=1&&Integer(x)这允许
000
,应该将其排除在外。您需要OP问题的前两个备选方案。这允许
000
,应该将其排除在外。你需要从OP的问题中选择前两个选项。