我需要验证一些输入,这些输入应为######
无效输入包括:
-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不匹配?
谢谢你的帮助
我需要验证一些输入,这些输入应为######
无效输入包括:
-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不匹配?
谢谢你的帮助
2条答案
按热度按时间cbwuti441#
尝试
它应该为你做这件事。
它从积极的展望开始,以确保有一个数字不是
0
目前然后它匹配1-3个数字,可以选择后跟.
和1-2位数。您的regex101已更新。
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
. 它也适用于负值,但这个正则表达式也排除了它们。