首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >正则表达式

正则表达式

作者头像
提莫队长
发布2018-05-18 15:17:19
6400
发布2018-05-18 15:17:19
举报
文章被收录于专栏:刘晓杰刘晓杰
    //^ 匹配输入字符串开始的位置

    //$    匹配输入字符串结尾的位置

    //* 零次或多次匹配前面的字符或子表达式。例如,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();
    }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年09月04日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档