Java 正则表达式

精确匹配

public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String data = "this is text";
        System.out.println(data.matches("this is text"));
    }
}

输出:true

匹配空格:

public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String data = "this     is text";
        System.out.println(data.matches("[this\\s]+[is\\s]+text"));
    }
}

输出:true

匹配数字

public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String data = "91";
        System.out.println(data.matches("\\d[5-9]"));
    }
}

返回:false(\\d表示0-9的数字,[5-9]表示5-9的一位数字)

匹配小数

public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String data = "987";
        System.out.println(data.matches("^(\\d+)(\\.\\d+)?"));
    }
}

返回:true(这里的^表示以这个开头,这里表示以多个数字开头,后面的问好表示问号前的括号内容可选,也就是这里可是整数也可以是小数)

匹配中文

public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String data = "我爱中国";
        System.out.println(data.matches("[\u0391-\uFFE5]+"));
    }
}

返回为true([\u0391-\uFFE5]表示中文的范围,A-¥)

匹配身份证号:

public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String data = "342201201706159375";
        System.out.println(data.matches("^(\\d{6})(18|19|20)(\\d{2})(0[1-9]|1[0-2])(0[1-9]|1\\d|2\\d|3[0-1])(\\d{3})(\\d|X|x)?$"));
    }
}

返回时true,但是这个也不是太对的,可能会出现4月31号,但是事实上是没有4.31的。

posted @ 2017-06-15 16:20  alittlecomputer  阅读(204)  评论(0编辑  收藏  举报