正则表达式表示 8,2 十进制,在 JAVA 中带有千位分隔符



我已经尝试了一些自己的正则表达式,但总是有一些错误或其他错误。

我的要求是获得 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})?$

正则表达式演示

您可以在上面的正则表达式中添加 or 条件以匹配非逗号模式

^(d{1,3}((?:(?<=d),(?=d{3})d{3})){0,2}|^d{0,8})(.d{2})?$

爪哇正则表达式

^(\d{1,3}((?:(?<=\d),(?=\d{3})\d{3})){0,2}|\d{0,8})(\.\d{2})?$

Ideone 演示

小数点前最多 6 位数字

^(d{1,3}((?:(?<=d),(?=d{3})d{3})){0,1}|^d{0,6})(.d{2})?$

试试这个正则表达式:

/^(?:(?:0|[1-9][0-9]{0,2})(?:,[0-9]{3})*(?:.(?:[0-9]{3},)*[0-9]{1,3})?|[1-9][0-9]*(?:.[0-9]*)?)$/

见正则表达式101

最新更新