正则表达式完全匹配0. [001到999]

时间:2015-01-20 23:10:00

标签: regex

我尝试(^[0]?)\.*(?=.*[1-9])\d{1,3}?$表达式来匹配输入值,它只能接受0. [001到999],现在的问题是:

它也匹配012或090等号码。

我希望表达式完全匹配0. [001 - 999]

感谢任何帮助。

谢谢, 斯

2 个答案:

答案 0 :(得分:3)

你有\.*匹配0或更多。它匹配0,因此你可以匹配像012这样的东西。

^0\.[0-9]{2}[1-9]$

匹配0,然后匹配.,然后匹配[0-9]两次,然后[1-9]

编辑:Jonathan是对的,这与0.010之类的内容不匹配。

^0\.[0-9]{3}$

然后确保它不会起作用。

或者尝试这个丑陋的:^0\.(?:[0-9]{2}[1-9]|[0-9][1-9][0-9]|[1-9][0-9]{2})$

答案 1 :(得分:0)

我接受@Crazysheep的回答。因为*引起了这个问题。

(^[0]?)\.(?=.*[1-9])\d{1,3}?$ seems to be working.

https://www.regex101.com/

进行测试

谢谢大家的快速回复。