我在創建正則表達式模式來拒絕字符串中的“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
提交
取消