正则表达式接受的数字小于最大尺寸

时间:2016-01-24 13:23:39

标签: java regex

请考虑接受任何数字的正则表达式。这些数字可以以逗号分隔不再,而不是 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 的字符串(包括逗号)和点)。是否可以在此正则表达式中执行此操作?

2 个答案:

答案 0 :(得分:4)

不超过25个字符:

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

结合你的正则表达式:

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

答案 1 :(得分:1)

您可以在模式匹配之前检查Java中的长度。检查长度比匹配正则表达式要快得多,因此如果在if中将其短路,则可以获得一些性能。