2012-05-29 24 views
0

這是我創建的模式,用於接受具有5個整數和2個十進制數字的十進制數字。簽名號碼模式

String pattern = "[0-9]{0,5}+([" + ds + "]{1}||[" + ds + "]{1}[0-9]{1,2})?"; 

ds是十進制格式符號。

如何修改它以接受負數?

謝謝。

回答

0

假設負數將與開始「 - 」號,你只需要把在開頭:

String pattern = "-?([0-9]{0,5}+([" + ds + "]{1}||[" + ds + "]{1}[0-9]{1,2})?)"; 

請注意,我沒有檢查模式的其餘部分的效力,只是展示瞭如何在其他一切之前添加減號。

1

[-+]?加在前面,並把你所擁有的()之間。

如果我寫的正則表達式,我會寫這樣的:[-+]?(\\d{0,5}\\.\\d{1,2}|\\d{1,5}\\.\\d{0,2})

它將這些邊界情況相符:

.5 
6. 
.43 
0. 
05.50 

但它會拒絕.

1

試試這個。

String pattern = "^[-+]?\d{1,5}(\.\d{1,2})?$"; 
1
String pattern = "[-+]?[0-9]{0,5}([.]{1}[0-9]{1,2})?"