Regex 正则表达式-带逗号和小数的金额

Regex 正则表达式-带逗号和小数的金额,regex,Regex,从上面的正则表达式: 0.1--->无效 0.10--->有效 10--->有效 100.00--->有效期 -0.1--->无效 -0.10--->无效 -10--->无效 -100.00--->无效 现在我想在正则表达式中添加逗号,如下所示: 1000.00--->有效期 10000.00--->有效期 100000.00--->有效期 1000000.00--->有效 -1000.00--->无效 如何更正正则表达式?在正则表达式中,您需要更改 ^([1-9][0-9]*|0)(\

从上面的正则表达式:

  • 0.1--->无效
  • 0.10--->有效
  • 10--->有效
  • 100.00--->有效期
  • -0.1--->无效
  • -0.10--->无效
  • -10--->无效
  • -100.00--->无效
现在我想在正则表达式中添加逗号,如下所示:

  • 1000.00--->有效期
  • 10000.00--->有效期
  • 100000.00--->有效期
  • 1000000.00--->有效
  • -1000.00--->无效

如何更正正则表达式?

在正则表达式中,您需要更改

^([1-9][0-9]*|0)(\.[0-9]{2})?$
表示“从非零开始的一个或多个数字”,至

它表示“从非零开始的一到三个数字
[1-9][0-9]{0,2}
,后跟任意数量的组,每个组有三个数字
(,[0-9]{3})*

生成的正则表达式将是:

[1-9][0-9]{0,2}(,[0-9]{3})*

由于存在逗号或存在-?-,因此无效。
^([1-9][0-9]{0,2}(,[0-9]{3})*0)(\[0-9]{2})?$
@Wolf:负数在原始表达式和测试用例中已经无效。@PetSerAl:请将其作为答案发布。感谢您最终将其作为答案发布:-)如果您希望解释这些部分(我从斜体中猜出来),您是否尝试将其分为几个部分?我只是用引号试了一下(在预览版中),看起来比较容易找到。@Wolf不确定我是否理解你的意思,我的英语不是很好。我试图改进我的职位。如果你认为,你可以做得更好,请随意编辑。
[1-9][0-9]{0,2}(,[0-9]{3})*
^([1-9][0-9]{0,2}(,[0-9]{3})*|0)(\.[0-9]{2})?$