我正忙着做这件事,以为我会把它放在那里。
必须是最多3个单位且最多5个小数位等的数字
有效
无效
编辑需要大于或等于零。
答案 0 :(得分:13)
根据您最近对问题所做的更改,这里有一个更新的正则表达式,它将匹配所有> = 0和< 1000
^\d{1,3}(?:\.\d{1,5})?$
^\___/ \/ ^\/\___/ |
| ^ ^ | | | `- Previous is optional (group of dot and minimum 1 number between 0-9 and optionally 4 extra numbers between 0-9)
| | | | | `- Match 1-5 instances of previous (single number 0-9)
| | | | `- Match a single number 0-9
| | | `- The dot between the 1-3 first number(s) and the 1-5 last number(s).
| | `- This round bracket should not create a backreference
| `- Match 1-3 instances of previous (single number 0-9)
`- Match a single number 0-9
^
是行首,$
是行尾。
有效
无效
答案 1 :(得分:1)
/\d{1,3}(\.\d{1,5})?\b/ # the boundary \b prevents matching numbers after the max of 5
编辑:快速搜索显示,像往常一样,有一个CPAN模块。
@ohaal正确地指出这也将匹配0,这是无效的。我建议将此正则表达式与匹配值大于0的测试结合起来。
答案 2 :(得分:1)
^([0-9].[0-9]{0,5}|[1-9][0-9]{0,2}.{0,1}[0-9]{0,5})$
接受 999.99999 99.9 9 0.99999
拒绝 -0.1 999.123456 AAA AAA.99999 0
答案 3 :(得分:0)
结帐http://www.regular-expressions.info/numericranges.html 关于赞成和反对的数字和讨论有很多例子 不同的方法。
答案 4 :(得分:0)