我在创建正则表达式模式以拒绝String中的“ 0”值时遇到问题。 我已尝试如下否定字符串
0
但是我相信这是错误的。因为它还会拒绝包含零的String,例如 10000“。可以仅使用正则表达式来处理吗?因为使用if-else比较容易。
示例:
答案 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");