求一个大于0 小于100 的浮点数正则表达式?

大于等于0 小于100的 浮点数的正则很好写 [0,100)

^\d{1,2}(\.\d+)?$

这个正则匹配的规则是,1到2位数字,后面是 小数点+至少一个数字 ,小数点+至少一个数字 的组合也可以没有

可以匹配的示例:0,1,6,12,44,99,0.000,0.123,5.000,99.999999

非数字,负数,大于等于100(整数部分超过2位)的都不会被匹配

但是0,0.000,0.000000还是会被匹配到。因为0、0.00000000与0.000000002要用在一个正则来排除前者匹配后者会很负责。

其实完全可以先用正则确实范围是在[0,100),然后在判断是否等于0,最后就得到(0,100)的范围了

如果非要这样的话也可以这样写

^0\.0*[1-9]\d*$|^[1-9](\.\d+)?$|^[1-9]\d(\.\d+)?$

匹配三种格式的数:0.xxxxxx (xxx中存在至少一个非0的数字) 或者 x.yyyy (x为非0的数字,y为数字,.yyy可有可无) 或者 xy.yyy(x为非0的数字,y为数字,.yyy可有可无)

ps:这个正则相对更严格,00.10,01.234 ,06等也会被认为是不匹配的