我尝试了一些自己的正则表达式,但总是遇到一些错误。
我的要求是获得小数点 8,2 的正则表达式,例如000,000.00
- 6位整数部分
- 小数部分 2 位
无效的如下
- 2,2
- 2,2.2.2
- 12,12
- 1,1,1,1
有效的如下
- 12
- 1,000.00
- 220,000.00
- 173747
更新: 这是为了检查用户的有效输入。 小数部分或逗号不是强制性的。
最佳答案
小数点前最多 8 位
我想出了一个相当复杂的正则表达式(假设数字有强制性的 ,
)
^\d{1,3}((?:(?<=\d),(?=\d{3})\d{3})){0,2}(\.\d{2})?$
<强> Regex Demo
您可以在上面的正则表达式中添加 or 条件来匹配非逗号模式
^(\d{1,3}((?:(?<=\d),(?=\d{3})\d{3})){0,2}|^\d{0,8})(\.\d{2})?$
Java 正则表达式
^(\\d{1,3}((?:(?<=\\d),(?=\\d{3})\\d{3})){0,2}|\\d{0,8})(\\.\\d{2})?$
<强> Ideone Demo
小数点前最多使用 6 位数字
^(\d{1,3}((?:(?<=\d),(?=\d{3})\d{3})){0,1}|^\d{0,6})(\.\d{2})?$
关于java - JAVA中带有千位分隔符的小数点8,2的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36822760/