Regex 正则表达式查找正确的十进制数1.0或1.99到10.0
我试图找到一个介于1.0或1.10之间但不会高于10.0的数字 以下是我到目前为止的资料,Regex 正则表达式查找正确的十进制数1.0或1.99到10.0,regex,Regex,我试图找到一个介于1.0或1.10之间但不会高于10.0的数字 以下是我到目前为止的资料, ^0$|^[1-9]{1}\.[0-9]{2}$|^10\.0$ 这一个是为1.55工作的我试图在表达式中添加一个,以查找eg1.5,但不幸的是它找不到1.55,但它继续查找1.5下面是我对or语句的尝试 ^0$|^[1-9]{1}\.[0-9]{1}$|[1-9]{1}\.[0-9]{2}$^10\.0$ 是我正在尝试使用的站点。您忘记了[0-9]{2}$和^10之间的交替,如果您像开始的正则表达式
^0$|^[1-9]{1}\.[0-9]{2}$|^10\.0$
这一个是为1.55
工作的
我试图在表达式中添加一个,以查找eg
1.5
,但不幸的是它找不到1.55
,但它继续查找1.5
下面是我对or语句的尝试
^0$|^[1-9]{1}\.[0-9]{1}$|[1-9]{1}\.[0-9]{2}$^10\.0$
是我正在尝试使用的站点。您忘记了
[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$
您可以使用以下只接受最多2位小数的数字的正则表达式:
^0$|^[1-9](?:\.[0-9]{1,2})?$|^10(?:\.00?)?$
它还将接受10.00
和0
到10
的所有不带小数的整数
演示:
如果要将最大2位小数介于0
和1
之间的数字添加到初始范围(1-10
->0-10
)
演示:
现在,如果您希望接受范围内超过2位小数(0-10
)
演示:可能^(?:1\.(?:0\d |[1-9]\d)|(?:[2-9]| 10)\.00)$
^
(?:
# 1.00 - 1.99
1
\.
(?:
0 \d
| [1-9] \d
)
|
# 2.00 - 10.00
(?:
[2-9]
| 10
)
\.00
)
$
那么
1.55
是否是该范围内的有效数字?如果是这样的话,我建议不要在这里使用正则表达式,只需直接比较应用程序语言中的值。您的范围不清楚1.0
或1.99
到10.0
。。。在1.0
或1.10
之间,但不会高于10.0
您的模式似乎不完全正确。谢谢@TimBiegeleisen,我放错位置了,我编辑了我的答案
^[0-9](?:\.[0-9]+)?$|^10(?:\.0+)?$
^
(?:
# 1.00 - 1.99
1
\.
(?:
0 \d
| [1-9] \d
)
|
# 2.00 - 10.00
(?:
[2-9]
| 10
)
\.00
)
$