2014-02-06 61 views
0

我想驗證與貨幣單位有關的金錢。什麼是Java正則表達式匹配數字然後空格然後3字母字符?

 
100 USD : valid 
1.11 USD : not valid 
1,12 USD : not valid 
12 US : not valid 

所以有效的字符串是「數字然後空間,然後3字母字符」。

text.matches("^\\d+ [a-zA-Z]{3}*$") 

我得到錯誤: Exception caught: Dangling meta character '*' near index 16 ^\d+ [a-zA-Z]{3}*$

那麼如何解決呢?

+2

爲什麼你的''? –

+0

'*'的意思是「以前的0或更多」,並將其應用於「{3}」是沒有意義的,因此是錯誤。 –

+0

thax我修正了:^ \\ d + [a-zA-Z] {3} $是正確的嗎? – Tum

回答

1

我固定obmitting *那麼它是好的:

text.matches("^\\d+ [a-zA-Z]{3}$") 
+2

如果yoq想要進一步驗證,而不是匹配'[a-zA-Z]',您可以匹配'(USD | ARS | AED | ...) –

相關問題