正则表达式

    //^ 匹配输入字符串开始的位置

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

    //* 零次或多次匹配前面的字符或子表达式。例如,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();
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户3030674的专栏

java进制转换(无视正负数的差别)

22220
来自专栏每日一篇技术文章

Swift3.0 - 对象和类

1.对象中的所有变量或者常量在定义时如果不初始化,在对象初始化的时候,必须初始化,这个是swift安全性考虑,可选类型没有强制性要求初始化,因为系统默认给可选类...

11210
来自专栏IMWeb前端团队

JSON Schema 参考书

本文作者:IMWeb 孙世吉 原文出处:IMWeb社区 未经同意,禁止转载 1 简介 JSON 模式(JSON Schema)是一种基于 JSON 格...

400100
来自专栏PHP在线

五个值得深思的PHP面试题

面试题 Q6 $x应该是输出什么? $x = true and false; var_dump($x); 部分同学或许会第一时间想到false,实际上这里依...

30150
来自专栏Python小屋

常用正则表达式锦集与Python中正则表达式的用法

1、常用正则表达式 最简单的正则表达式是普通字符串,只能匹配自身 '[pjc]ython'可以匹配'python'、'jython'、'cython' '[a-...

32650
来自专栏前端迷

数据结构与前端(一)——栈

每种数据结构都可以用很多种方式来实现,其实可以把栈看成是数组的一个子集,所以这里使用数组来实现

11220
来自专栏JavaEE

String类相关面试题很难?不要方,问题不大前言:一、字符串的创建:二、字符串的拼接:三、intern方法:总结:

Java中有一个String类,特别让人伤脑筋。因为它可以直接赋值,也可以new一下用构造器生成对象,还可以用加号拼接……这些不同的方式到底有什么区别?本文是个...

26550
来自专栏java工会

在Java中字符串是通过引用传递的?

18650
来自专栏JavaEdge

Java中正则表达式PatternMatcherStringJava String.split()用法小结

31650
来自专栏函数式编程语言及工具

Scalaz(5)- typeclass:my typeclass scalaz style-demo

  我们在上一篇讨论中介绍了一些基本的由scalaz提供的typeclass。这些基本typeclass主要的作用是通过操作符来保证类型安全,也就是在前期编译时...

21090

扫码关注云+社区

领取腾讯云代金券