如何使用正则表达式拒绝Java中的字符串“ 0”零

时间:2019-09-18 11:37:52

标签: java regex

我在创建正则表达式模式以拒绝String中的“ 0”值时遇到问题。 我已尝试如下否定字符串

0

但是我相信这是错误的。因为它还会拒绝包含零的String,例如 10000“。可以仅使用正则表达式来处理吗?因为使用if-else比较容易。

示例:

  • “ 0”-无效
  • “ 0000”-无效
  • “ 10”-有效
  • “ 10000”-有效

2 个答案:

答案 0 :(得分:3)

您可以使用:

^0+$

...并针对 进行验证。

本质上,它从头到尾检查输入以确保它仅由0组成。 您只需要反转验证。

或更佳:

!myString.matches("0+")

String#matches将整个字符串与模式匹配。否定调用结果可确保只有0+个出现在整个字符串中的事件无效。

答案 1 :(得分:2)

如果您要检查字符串是否不是从0开始(例如"01""010""00100"都是无效字符串),您可以尝试

^(?!0).*

模式,其中

^     - (anchor) start of the string
(?!0) - negative look behind (not start from 0)
.*    - any symbols 

或(不带正则表达式)

bool result = !myString.startsWith("0");