我尝试检查小数点前最多13位的双精度数,小数点和小数点后的数字是可选的。所以用户可以写一个整数或一个带小数的数字。
首先,我有这样的想法:
if (check.matches("[0-9](.[0-9]*)?"))我已经浏览了Google上的几个页面,尽管做了很多努力,我还是没有任何机会让它正常工作。我的想法是这样做,但它不起作用:
[0-9]{1,13}(.[0-9]*)?我该怎么做呢?
发布于 2013-01-28 21:30:30
别忘了避开那个圆点。
if (check.matches("[0-9]{1,13}(\\.[0-9]*)?"))发布于 2013-01-28 21:32:41
首先,您需要转义点(在java中,这应该是[0-9]{1,13}(\\.[0-9]*)?)。其次,别忘了还有另一个流行的替身代表--科学。所以这个1.5e+4也是一个有效的双精度数。最后,不要忘了双精度数可能是负数,也可能根本没有完整的部分。例如,-1.3和.56是有效的替身。
发布于 2013-01-28 21:31:41
您需要转义圆点,并且圆点后至少需要数字
[0-9]{1,13}(\\.[0-9]+)?查看here on Regexr
https://stackoverflow.com/questions/14563106
复制相似问题