数字正则

数字正则

原文链接: [正则表达式 整数](http://www.cnblogs.com/freexiaoyu/archive/2008/12/17/1356690.html)

内容摘自原文和评论

正则

^[1-9]\d*$ //匹配正整数
^[1-9]\\d*|0$ //匹配整数(推荐) -0,0123 不通过
^[1-9]\d*|0$ //非负整数
^-[1-9]\d*|0$ //匹配非正整数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)

测试代码

    @Test
    public void test0(){
        // ^[1-9]\d*$ 匹配正整数
        System.out.println(Pattern.matches("^[1-9]\\d*$", "898"));//true
        // ^-?[0-9]\d*$ 匹配整数 -0,0123 都算通过
        System.out.println(Pattern.matches("^-?[0-9]\\d*$", "-0"));//true
        // ^[1-9]\\d*|0$ 匹配整数(推荐) -0,0123 不通过
        System.out.println(Pattern.matches("^(-?[1-9]\\d*|0)$", "0123"));//false
        // ^[1-9]\d*|0$ 非负整数
        System.out.println(Pattern.matches("^[1-9]\\d*|0$", "46"));//true
        // ^-[1-9]\d*|0$ 匹配非正整数
        System.out.println(Pattern.matches("^-[1-9]\\d*|0$", "1000.01"));//false
        // ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数
        System.out.println(Pattern.matches("^[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*$", "1000.01"));//true
        // ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
        System.out.println(Pattern.matches("^-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*)$", "1000.01"));//false
        // ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数
        System.out.println(Pattern.matches("^-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0)$", "000.01"));//false
        // ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)
        System.out.println(Pattern.matches("^[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0$", "0"));//true
        // ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)
        System.out.println(Pattern.matches("^(-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*))|0?\\.0+|0$", "0.000"));//true
    }
posted @ 2022-11-03 10:58  进击的小蔡鸟  阅读(58)  评论(0编辑  收藏  举报