我正在尝试找到一个介于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是我正在尝试使用的网站。
答案 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
和从0
到10
的所有不带小数的整数。
演示:https://regex101.com/r/tT1dX7/19
如果您要添加介于0
和1
之间的最多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+)?$
答案 2 :(得分:0)
也许conn.createStatement().executeUpdate("INSERT INTO my_table VALUES (1,2,3)"
^(?:1\.(?:0\d|[1-9]\d)|(?:[2-9]|10)\.00)$