我目前使用「(\ d){1,9}」,但它無法使諸如「0134」之類的數字無效。該表達式只能驗證INTEGERS爲正的數字。謝謝。正則整數的Java正則表達式(不包括那些以零開始的)
3
A
回答
6
現在你使用表達式[0-9]{1,9}
,所以這顯然允許數字0134
。當你想要求第一個字符不是零時,你必須使用[1-9][0-9]{0,8}
。
順便說一句:0134 是一個正整數。它是一個整數,並且是正數。 ;)
編輯:
爲了防止整數溢出你可以用這個模式:
[1-9][0-9]{0,8}
[1-1][0-9]{9}
[2-2][0-1][0-9]{8}
[2-2][1-1][0-3][0-9]{7}
[2-2][1-1][4-4][0-6][0-9]{6}
- ...
我覺得你的想法。然後你將這些表達式與|
結合起來,就完成了。
另外,看看Integer.valueOf(String)
方法,它是如何分析數字和檢查溢出。複製該代碼並使用NumberFormatException
更改零件。
5
相關問題
- 1. 只有正數的Java正則表達式不包括零
- 2. 正則表達式不以「。」開始
- 3. 正則表達式包括與其他正則表達式
- 4. 正則表達式不包括一個開始字符串
- 5. 開始正則表達式
- 6. 調整正則表達式包括0-100 - 正則表達式貨幣值
- 7. 正則表達式,但不包括
- 8. 正則表達式不包括「\ r \ n」
- 9. 正則表達式,不包括字符
- 10. 正則表達式不包括URL
- 11. 正則表達式maven packaging不包括
- 12. 不包括在正則表達式
- 13. 正則表達式(不包括digit.digit)
- 14. 正則表達式:不包括組
- 15. 正則表達式 - 不包括字符
- 16. 正則表達式不包括換行
- 17. 正則表達式,不包括超模
- 18. 正則表達式開始,以
- 19. 正則表達式僅匹配數字不是從零開始
- 20. 包括XML中的正則表達式?
- 21. 帶開括號的正則表達式
- 22. 開始與$字符串,然後整數正則表達式,包含括號
- 23. 如何「不包括」一些片在正則表達式模式
- 24. 正則表達式,Word包含x,但不以x開始
- 25. 正則表達式開始與數
- 26. 什麼是「任何正整數,不包括0」的正則表達式
- 27. Perl的正則表達式開始
- 28. 正則表達式零
- 29. 從specefic文本開始的正則表達式的正則表達式
- 30. 正則表達式表達不包括數字搜索
如果您想防止超限,那麼這是不合理的。 (2 147 483 648及更高)。 – 2011-05-13 23:57:55
我想我只需要確保字符串只包含數字而不包含任何其他種類的字符(如+, - ,&,等),並且它不以零開頭。 – skyork 2011-05-14 00:33:42
但是你將它限制在9個地方。如果你想包含long或BigInteger,那就不合適,但是「[1-9] [0-9] *」 - 如果它旨在避免超出範圍 - 它只會偶爾工作。它可能會超過78%的可能數字。 :) – 2011-05-14 02:09:18