正则表达式表示非负数,非零表示格式#####

pdkcd3nj  于 2021-09-13  发布在  Java
关注(0)|答案(2)|浏览(342)

我需要验证一些输入,这些输入应为######
无效输入包括:

-11.10          ==> no negative
000.00 or 0     ==> 0 not allowed should be positive

有效输入为:

1
11
111
1.1
11.11
111.11

我已尝试使用以下正则表达式^([^-]\d{0,2}(.\d{1,2})$,它满足了我的要求,但它接受了我不想要的0。如何修改我的正则表达式,使只有0不匹配?
谢谢你的帮助

cbwuti44

cbwuti441#

尝试

^(?=.*[1-9])\d{1,3}(?:\.\d\d?)?$

它应该为你做这件事。
它从积极的展望开始,以确保有一个数字不是 0 目前然后它匹配1-3个数字,可以选择后跟 . 和1-2位数。
您的regex101已更新。

2ul0zpep

2ul0zpep2#

([0-9]){1,3}(\.[0-9]{1,2})? 是您正在搜索的表达式。 ([0-9]){1,3} =长度从1到3的任意数字序列 (\.[0-9]{1,2})? =“?”可能有一个浮动的尾巴 (\.[0-9]{1,2}) =浮尾必须以点开头,小数必须最多为2
有一种方法可以排除所有的零序,但它会无缘无故地浪费您的时间,因为您可以简单地用 if myNum > 0 . 它也适用于负值,但这个正则表达式也排除了它们。

相关问题