精度为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/

10-11 17:59
查看更多