Regex 具有两个小数或非负整数的非负数的正则表达式。无前导0

Regex 具有两个小数或非负整数的非负数的正则表达式。无前导0,regex,validation,Regex,Validation,作为salāmuʿalaykum Allowed: 0 0.00 0.01 0.10 0.11 1 1.00 1.10 1.01 1.11 99999999 99999999.00 99999999.01 99999999.10 99999999.11 NOT ALLOWED: . .00 00 00. 00.00 00.01 00.10 00.11 01 010 01. 01.00 01.000 我可以继续说下去,但我想你知道我想要的要点。正则表达式将用于验证货币,最多有两个可选小数。小

作为salāmuʿalaykum

Allowed:

0
0.00
0.01
0.10
0.11
1
1.00
1.10
1.01
1.11
99999999
99999999.00
99999999.01
99999999.10
99999999.11

NOT ALLOWED:
.
.00
00
00.
00.00
00.01
00.10
00.11
01
010
01.
01.00
01.000
我可以继续说下去,但我想你知道我想要的要点。正则表达式将用于验证货币,最多有两个可选小数。小数点左侧没有上限,只要它不是前导0

它将在Java应用程序中使用


提前感谢

一个选项是,从字符串的开头开始,对0使用负前瞻,后跟一个数字,然后只测试可选后跟一个数字的数字。后面跟着更多的数字:

^(?!0\d)\d+(\.\d\d)?

所以这个问题的问题是最后没有问号?你没有更好的事要做吗?