我在创建正则表达式模式来拒绝字符串中的“0”值时遇到问题。我尝试按如下方式否定字符串[^!(?0)]但我相信这是错误的。因为它还会拒绝包含零的字符串,例如 10000"。是否可以仅使用正则表达式来处理此问题?因为使用 if-else 更容易。例子:“0”——无效“0000”-无效“10”——有效“10000”-有效
2 回答
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
您可以使用:
^0+$
...并对其进行验证。
本质上,它从头到尾检查输入以确保它仅由 0 组成。您只需要反转验证即可。
或更好:
!myString.matches("0+")
String#matches
将整个字符串与模式进行匹配。否定调用的结果可确保只有0+
填充整个字符串的事件才是无效的。
ITMISS
TA贡献1871条经验 获得超8个赞
如果你想检查字符串是否不是从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");
添加回答
举报
0/150
提交
取消