RegeX表示一个范围,并且一起限制[重复项]

问题描述 投票:0回答:2

此问题已经在这里有了答案:

我是regeX的新手,我正在寻找满足以下条件的表达式

  1. 仅应验证数字。不接受小数。(例如:123、11、1025、0548)
  2. 不应大于7位数字

我尝试了以下regeX

^[1-9][0-9]*$

但是对于大于0的数字也可以正常工作。

然后我尝试了

 ^[1-9][0-9]\d{1,7}$

但是如果数字大于2,则接受。当我给出12时,它返回false。当我给123时,它返回true

并且当我给出0124时,也会返回false

也请参考以下几点以了解不同的输入内容

  1. 1、12、432、12414、1234567等都是有效输入。其大于0,最大长度为7
  2. 01,0121,0000001等也有效。 0000001大于0。
  3. 0,12345678等无效,因为它不应接受小于0或长度大于7的字符
  4. 所有负值均无效,所有字符均无效

提前感谢。

注意:正如我说的,我是正则表达式的新手,如果您能解释您的回答,将不胜感激

regex
2个回答
0
投票

如果支持断言至少1到9的数字,然后匹配1到7的数字,您可以给我们一个积极的前瞻(?=[0-9]*[1-9])

^(?=[0-9]*[1-9])[0-9]{1,7}$

Regex demo


0
投票

您可以为此使用否定前瞻。模式:

^(?!0+$)\d{1,7}$

将正常工作。

regex101 demo

© www.soinside.com 2019 - 2024. All rights reserved.