2015-12-07 22 views
0

我正在解決regx問題。我已經有這樣的regx [0-9]*([.][0-9]{2})。這是一個amont格式驗證。現在有了這個驗證,我想包括不應該提供0數量。像10是有效的,但0應該是無效的。如果你提供一些答案,或者讓我知道如何給它一些有效值正則表達式僅驗證0值。單個0值進行驗證

10.00 
10 
1 

無效

0 

例子是挪用。

+1

它看起來像你希望自己的數據不會與'0'開始... – Pshemo

回答

3

如下你可以改變你的正則表達式:

[1-9][0-9]*([.][0-9]{2})* 

這將需要至少一位其他任何數字之前包含在1和9之間,以及可選的結尾十進制值。

Pattern p = Pattern.compile("[1-9][0-9]*([.][0-9]{2})*"); 
String[] test = {"10.00", "10", "1", "0", "00.0"}; 
for (String s: test) { 
    System.out.printf("%s is matched? %b%n", s, p.matcher(s).find()); 
} 

輸出

10.00 is matched? true 
10 is matched? true 
1 is matched? true 
0 is matched? false 
00.0 is matched? false