2016-01-24 53 views
0

請考慮這個正則表達式,它接受任意數字。這些數字可以逗號,分離不多超過4位正則表達式接受小於最大大小的數字

\d*\d{1,3}(,\d{3})*(\.\d{1,4})?|\.\d{1,4} 

因此,所有下方被接受:

123 
12345678 
123,456,789 
123.000 
123,456.00 
1.1234 
.1234 

https://regex101.com/r/cE0uH9/1

我想的是,正則表達式還檢查總大小拒絕字符串是長於25(包括逗號和點)。在這個正則表達式中可以做到嗎?

+1

不過,你也可以使用'length'屬性。 – Tushar

回答

4

超過25個字符不再:

^(?=.{0,25}$) 

結合您的正則表達式:

^(?=.{0,25}$)(\d*\d{1,3}(,\d{3})*(\.\d{1,4})?|\.\d{1,4}) 
1

你可以在模式匹配之前檢查Java中的長度。檢查長度比匹配正則表達式要快得多,所以如果在if中將其短路,則可以獲得一些性能。

相關問題