Regex 如何拒绝任何格式正则表达式中的所有零
我几乎解决了我的问题,但我想我忘了或放错了一个字符。我想拒绝零值,包括0.00格式Regex 如何拒绝任何格式正则表达式中的所有零,regex,Regex,我几乎解决了我的问题,但我想我忘了或放错了一个字符。我想拒绝零值,包括0.00格式 ^((?!0+$)\d+(\.0{2})$ 起初我只想拒绝零值,然后我写了^(?!0+$)\d+$ 然后我有另一个要求,只接受xxx.00这种格式。两位小数。结果就像^((?!0+$)\d+(\.0{2})$ 它确实拒绝.00格式以外的数字,但接受0.00。我确实在第一组否定了零,但是为什么正则表达式接受它呢 0 //false 9 //false 1000.00 //true .00 //false 10.
^((?!0+$)\d+(\.0{2})$
起初我只想拒绝零值,然后我写了^(?!0+$)\d+$
然后我有另一个要求,只接受xxx.00这种格式。两位小数。结果就像^((?!0+$)\d+(\.0{2})$
它确实拒绝.00格式以外的数字,但接受0.00。我确实在第一组否定了零,但是为什么正则表达式接受它呢
0 //false
9 //false
1000.00 //true
.00 //false
10.00 //true
434543.12 //false
324.00 //true
40000 //false
0.00 //should be false but mine is true
000.00 //should be false but mine is true
我试图重新组合和重新定位,但没有任何效果。听起来你可以简单地使用它
^[1-9]\d*\.00$
看你的
- 如果要允许前导零
- 如果你想允许的话
- 听起来你可以简单地使用
^[1-9]\d*\.00$
看你的
- 如果要允许前导零
- 如果你想允许的话
^(?![0.]+$)\d+\.0{2}$
见
详细信息
-字符串的开头^
-如果在当前位置的右侧,仅在字符串末尾有一个或多个零或点,则会导致匹配失败的负前瞻(?![0.]+$)
-1+位\d+
-由\.0{2}
和两个零组成的序列
-字符串结束$
^(?![0.]+$)\d+\.0{2}$
见
详细信息
-字符串的开头^
-如果在当前位置的右侧,仅在字符串末尾有一个或多个零或点,则会导致匹配失败的负前瞻(?![0.]+$)
-1+位\d+
-由\.0{2}
和两个零组成的序列
-字符串结束$
^(?![0.]+$)\d+(?:\.0{2})?$
?请参见我想拒绝零的值
。。。这究竟意味着什么?你能给我们解释一下吗?@TimBiegeleisen不仅是0.00,还有0000.00,任何数字零。我认为更好的解决方案是分两步进行:第一步验证格式;第二步检查零。第二步,检查所有零,你不需要正则表达式,只需迭代字符串,如果有非零数字字符(不包括点),只需返回“true”。现在,如果你使用@WiktorStribiżew建议的正则表达式,请确保完整地记录它。因为除了正则表达式专家之外,它基本上是不可理解的。这就是正则表达式的问题,它们的功能非常强大,但它们也非常不友好,看起来更像是线噪声。当解决方案如此复杂时,您最好使用更简单、易于阅读、理解和维护的解决方案。可能^(?[0.]+$)\d+(?:\.0{2})?$
?请参见我想拒绝零的值
。。。这究竟意味着什么?你能给我们解释一下吗?@TimBiegeleisen不仅是0.00,还有0000.00,任何数字零。我认为更好的解决方案是分两步进行:第一步验证格式;第二步检查零。第二步,检查所有零,你不需要正则表达式,只需迭代字符串,如果有非零数字字符(不包括点),只需返回“true”。现在,如果你使用@WiktorStribiżew建议的正则表达式,请确保完整地记录它。因为除了正则表达式专家之外,它基本上是不可理解的。这就是正则表达式的问题,它们的功能非常强大,但它们也非常不友好,看起来更像是线噪声。如果解决方案如此复杂,那么你最好使用更简单、易于阅读、理解和维护的解决方案。对不起,我犯了一个错误。您的解决方案正在接受非.00格式的数字。可能我太关注0.00了,然后我没有看到其他人<代码>9和40000rejected@chronos14然后,卸下?
。请注意,(?![0.]+$)
是一种通用的正则表达式方法,用于避免将等于零的int或float与消费模式匹配,如^\d+(?:\。+)?$
。很抱歉,我犯了一个错误。您的解决方案正在接受非.00格式的数字。可能我太关注0.00了,然后我没有看到其他人<代码>9和40000rejected@chronos14然后,卸下?
。请注意,(?![0.]+$)
是一种通用的正则表达式方法,可以避免将等于零的int或float与消费模式匹配,如^\d+(?:\。\d+)$
。