正则表达式查找正确的十进制数1.0或1.99至10.0

时间:2019-01-31 01:37:02

标签: regex

我正在尝试找到一个介于1.0或1.10之间但不会大于10.0的数字

这是我到目前为止所拥有的,

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

此人正在为1.55工作

我尝试在表达式中添加OR,以查找例如1.5,但不幸的是找不到{{ 1}},但确实会继续找到1.55

这是我对or语句的尝试

1.5


Here是我正在尝试使用的网站。

3 个答案:

答案 0 :(得分:3)

您忘记了[0-9]{2}$^10之间的交替,如果像开始的正则表达式那样添加|,它应该可以工作。

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

此外,这里不需要{1},因为它只重复了一次。 此正则表达式较短:

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

答案 1 :(得分:1)

您可以使用以下正则表达式,仅接受最多2个小数的数字:

^0$|^[1-9](?:\.[0-9]{1,2})?$|^10(?:\.00?)?$

它还将接受10.00和从010的所有不带小数的整数。

演示:https://regex101.com/r/tT1dX7/19

如果您要添加介于01之间的最多2个小数的数字到您的初始范围(1-10-> 0-10

^[0-9](?:\.[0-9]{1,2})?$|^10(?:\.00?)?$

演示:https://regex101.com/r/tT1dX7/20

现在,如果您要接受范围内的两个以上小数(0-10

^[0-9](?:\.[0-9]+)?$|^10(?:\.0+)?$

演示:https://regex101.com/r/tT1dX7/21

答案 2 :(得分:0)

也许conn.createStatement().executeUpdate("INSERT INTO my_table VALUES (1,2,3)"

^(?:1\.(?:0\d|[1-9]\d)|(?:[2-9]|10)\.00)$