正则表达式匹配000001至002000

时间:2018-09-05 08:15:05

标签: regex

我的字符串从 000001 00000到999999。

我正在寻找一个正则表达式来捕获从000001到002000的2000个元素。也许这个问题太幼稚了,但是经过一番尝试之后,我找不到合适的正则表达式...

有人可以帮忙吗?谢谢!

编辑:该问题已被标识为this,可能已被复制,我已要求编辑该问题以解释为什么没有。前面提到的问题通常是关于正则表达式的,但是我要问一个非常具体的案例(您可以争论这个具体案例是否微不足道,但这是一个不同的问题;)

2 个答案:

答案 0 :(得分:1)

您可以使用这个:

^0*(2000|1?[0-9]{3})$

根据您的评论,您还希望排除“ 000000”。然后使用

^(?!000000)0*(2000|1?[0-9]{3})$

["000000", "000001", "999999", "001541", "000015", "002000"].forEach(s=> console.log(s, /^(?!000000)0*(2000|1?[0-9]{3})$/.test(s)))

但是大多数现实世界中理智的解决方案只是解析数字并将其与范围进行比较。这样就不太容易出错,并且更容易检查和维护。

答案 1 :(得分:0)

检查以下内容: ^00([01]\d{3}|2000)$

请注意,它也匹配000000,但是正如您所说的那样,没有这样的字符串,所以一切正常。