正则表达式的最大值

时间:2019-04-02 11:35:29

标签: regex

我有以下正则表达式:

(^\d{1,3}$)|(\d{1,3})\.?(\d{0,0}[0,5])

这接受数字的任何.5增量。

我想为此数字13.5添加一个范围。理想情况下,.5应该有效。

因此,从.513.5,以.5递增。

允许的示例:

.5
4
12.5
13.5

不允许:

.56
3.45
14
14.5

2 个答案:

答案 0 :(得分:1)

^([0-9]|1[0-3])?(\.[05])?$

这适用于您给出的示例

答案 1 :(得分:1)

您当前的正则表达式存在一些大问题,例如[0,5]既不是0也不是5,而是0,5。请尝试以下正则表达式:

^(?=.)(?:\d|1[0-3])?(?:\.5)?$

请参见live demo here

根据您提供的允许示例,它匹配12,但不匹配12.0。如果还要匹配12.0,则必须将\.5替换为\.[05]

^(?=.)(?:\d|1[0-3])?(?:\.[05])?$

注意:正向提前(?=.)可确保不会出现空匹配。