请考虑接受任何数字的正则表达式。这些数字可以以逗号分隔,不再,而不是 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
的字符串(包括逗号)和点)。是否可以在此正则表达式中执行此操作?
答案 0 :(得分:4)
不超过25个字符:
^(?=.{0,25}$)
结合你的正则表达式:
^(?=.{0,25}$)(\d*\d{1,3}(,\d{3})*(\.\d{1,4})?|\.\d{1,4})
答案 1 :(得分:1)
您可以在模式匹配之前检查Java中的长度。检查长度比匹配正则表达式要快得多,因此如果在if
中将其短路,则可以获得一些性能。