我需要匹配一个从0到20 的浮点数。
所有这些都必须有效:
1.20
01.20
12.00
13,59
11
1
08
00.50
5,50
但不那些:
001,20
1.200
13,
13.
.50
总结一下。
我尝试了很多模式,但没有人完全匹配。
答案 0 :(得分:0)
^([01]?\d)([,.]\d?\d)?$|^20([,.]0?0)?$
匹配从0
到20
的所有内容。
这个想法是:
^$
- 从一开始直到字符串结尾([01]?\d)
- 小数点前的部分可以是单个数字(\d
)或有两位数,其中第一个是0
或1
({ {1}})[01]?
- 小数点,可以是点或逗号[,.]
- 一位或两位数字\d?\d
- 浮动部分是可选的()?
- 上述内容匹配,或.. |
- 只需20
20
- 带有可选的小数部分,由带有一个或两个零的小数点