正则表达式从0.01到999.00

时间:2015-02-12 11:10:31

标签: regex

我一直试图创建一个regual表达式来匹配0.01到999.00之间的所有正浮点数

以下是我迄今为止所做的工作:^999$|^999.0$|^999.00$|^[0-9]{1,3}(?:\.[0-9]{1,2})?$

但是,我需要排除以下值:

0
00
000
0.0
0.00
00.0
00.00
000.0
000.00

我该怎么做?

1 个答案:

答案 0 :(得分:4)

只需在开头添加否定前瞻。

^(?!0+(?:\.0+)?$)(?:999|999.0|999.00|[0-9]{1,3}(?:\.[0-9]{1,2})?)$

OR

^(?!(?:0+(?:\.0+)?|999\.\d*[1-9])$)(?:999|999.0|999.00|[0-9]{1,3}(?:\.[0-9]{1,2})?)$

DEMO

开始时

(?!0+(?:\.0+)?$)强制正则表达式引擎不匹配仅包含0的行。