精度为2的小数的正则表达式是什么?
有效的例子:
123.12
2
56754
92929292929292.12
0.21
3.1
无效的示例:
12.1232
2.23332
e666.76
小数点可以是可选的,也可以包括整数。
最佳答案
有效的正则表达式 token 因实现而异。通用形式为:
[0-9]+(\.[0-9][0-9]?)?
更紧凑:
\d+(\.\d{1,2})?
两者都假定两者在小数点前至少有一位数字,在小数位之后至少一位数字。
要要求整个字符串都是这种形式的数字,请将表达式包装在开始和结束标记中,例如(以Perl的形式):
^\d+(\.\d{1,2})?$
要匹配不带小数点前的前导数字的数字(
.12
)和具有尾随句点的整数(12.
),同时排除单个句点的输入(.
),请尝试以下操作:^(\d+(\.\d{0,2})?|\.?\d{1,2})$
添加
将小数部分包装在
()?
中以使其可选。请注意,这排除了诸如12.
之类的形式,其中包括了更像^\d+\\.?\d{0,2}$
的形式。添加
使用
^\d{1,6}(\.\d{1,2})?$
可以停止重复并限制十进制值的整个部分。关于regex - 简单的正则表达式,精度为2的十进制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/308122/