2016-12-13 41 views
2

我讀了很多正則表達式的問題,但我沒有找到這個尚未..爪哇 - 正則表達式對於普通的正負值

我想在Java中的正則表達式來檢查是否一個字符串(不限制長度)是一個數字:

  • 包括負(-4/-123)

  • 包括0

  • 包括陽性(一百二十三分之二)

  • 不含+(+ 4/+ 123)

  • 不含前導零0(05/000)

  • .除外(0.5/0.4/1.0)

  • 不含-0

這是我迄今爲止所做的:

^(?-)[1-9]+[0-9]* 
+3

請告訴我們,到目前爲止你有什麼,我們會一起幫助你。 – NPE

+0

代碼請求不是有效的問題 – Kiogara

+0

謝謝! - ^(? - )[1-9] + [0-9] * –

回答

4

的是一個可選的 -

-? 

數必須不與啓動一個0

[1-9] 

它可以跟隨的數字的arbitraty數

\d* 

0是「不開始」的例外與0規則「,因此你可以加0作爲選擇。

最後的正則表達式

-?[1-9]\d*|0 

Java代碼

String input = ... 

boolean number = input.matches("-?[1-9]\\d*|0"); 
+0

對於這種答案,它值得建立計算器。詳細,準確,並演示。你真棒!! –

+0

很好回答! – ryonts