正则表达式

来源:互联网 发布:传输文件到阿里云 编辑:程序博客网 时间:2024/06/07 07:50
    //^ 匹配输入字符串开始的位置    //$    匹配输入字符串结尾的位置    //* 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配z,zo,zoo等    Pattern p = Pattern.compile("^zo*$");    Matcher m = p.matcher("zooo");    System.out.println("*测试:" + m.matches());    //+ 一次或多次匹配前面的字符或子表达式。例如,“zo+”与“zo”和“zoo”匹配,但与“z”不匹配    p = Pattern.compile("^zo+$");    m = p.matcher("z");    System.out.println("+测试:" + m.matches());//false    //? 零次或一次匹配前面的字符或子表达式。例如,“do(es)?”匹配“do”或“does”中的“do”    p = Pattern.compile("^zo?$");    m = p.matcher("zo");    System.out.println("?测试:" + m.matches());    //{n}   n 是非负整数。正好匹配 n 次    //{n,}  n 是非负整数。至少匹配 n 次    //{n,m} M 和 n 是非负整数,其中 n <= m。匹配至少 n 次,至多 m 次    //? 当此字符紧随任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后时,    //匹配模式是“非贪心的”。“非贪心的”模式匹配搜索到的、尽可能短的字符串    //例如,在字符串"oooo"中,“o+?”只匹配单个“o”,而“o+”匹配所有“o”。    //. 匹配除“\n”之外的任何单个字符(必须是一个字符)    p = Pattern.compile("^z.$");    m = p.matcher("z");    System.out.println(".测试:" + m.matches());//false    //x|y   匹配 x 或 y    //[xyz] 字符集。匹配包含的任一字符    //[^xyz]反向字符集。匹配未包含的任何字符    //[a-z] 字符范围。匹配指定范围内的任何字符    //[^a-z]反向范围字符。匹配不在指定的范围内的任何字符    //\b 匹配一个字边界,即字与空格间的位置。例如,“er\b”匹配“never”中的“er”,但不匹配“verb”中的“er”    //http://www.cnblogs.com/newsouls/p/3781812.html    //\B 非字边界匹配。“er\B”匹配“verb”中的“er”,但不匹配“never”中的“er”。    // \d   数字字符匹配。等效于 [0-9]。    // \D   非数字字符匹配。等效于 [^0-9]。    // \s   匹配任何空白字符,包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效。    p = Pattern.compile("^z\\sz$");    m = p.matcher("z z");    System.out.println("\\s测试:" + m.matches());//true    // \S   匹配任何非空白字符。与 [^ \f\n\r\t\v] 等效。    // \w   匹配任何字类字符,包括下划线。与“[A-Za-z0-9_]”等效。    // \W   与任何非单词字符匹配。与“[^A-Za-z0-9_]”等效。

参考:http://www.codeyyy.com/regex/introduce/grammar/index.html

几个常用的正则

public static boolean isMobileNO(String mobiles) {        // 13\\d{9}        // 14[57]\\d{8}        // 15[0-35-9]\\d{8}---//150到153,155到159        // 17[678]\\d{8}        // 18\\d{9}        // 170[059]\\d{7}        Pattern p = Pattern.compile("^1(3\\d|4[57]|5[0-35-9]|7[678]|8\\d)\\d{8}|170[059]\\d{7}$");        Matcher m = p.matcher(mobiles);        System.out.println("手机号格式正确么?" + m.matches());        return m.matches();    }    public static boolean isPersonID(String ID) {        // 一二代身份证正则表达式(15/18位)        Pattern p = Pattern.compile("^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$|^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X|x)$");        Matcher m = p.matcher(ID);        System.out.println("身份证格式正确么?" + m.matches());        return m.matches();    }    public static boolean isEmail(String email) {        Pattern p = Pattern.compile("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*.\\w+([-.]\\w+)*$");        Matcher m = p.matcher(email);        System.out.println("电子邮件格式正确么?" + m.matches());        return m.matches();    }    public static boolean isIP(String ip) {        Pattern p = Pattern.compile("^((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)$");        Matcher m = p.matcher(ip);        System.out.println("IP格式正确么?" + m.matches());        return m.matches();    }
原创粉丝点击