这篇博客是开发使用到正则表达式后所写,如有不妥之处,欢迎留言,谢谢~

正则表达式可以迅速地用极简单的方式达到字符串的复杂控制。为了避免重复造轮子,此文将用于记录常用的正则表达式

文中所列正则表达式,均有优化之处。若您有更优的,欢迎讨论。同时,也欢迎提供其他常用正则。谢谢~~~

  • 邮箱:

    1
    String regex = "\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?";
  • 手机号码:

    1
    String regex = "(\\+\\d+)?1(3[0-9]|4[57]|5[0-35-9]|8[0-9]|70)\\d{8}$";
  • ip 地址:(粗略匹配,有待优化)

    1
    String regex = "[1-9](\\d{1,2})?\\.(0|([1-9](\\d{1,2})?))\\.){2}(0|([1-9](\\d{1,2})?))";
  • 身份证号码:

    1
    String regex = "[1-9]\\d{13,16}[a-zA-Z0-9]{1}";
  • 固定电话号码:

    1
    String regex = "(\\+\\d+)?(\\d{3,4}\\-?)?\\d{7,8}$";
  • 中国邮编

    1
    String regex = "[1-9]\\d{5}";

在 Java 中,使用正则进行匹配,有两种常用方法:

  • 第一种:

    1
    2
    3
    4
    5
    6
    Pattern p = Pattern.compile("正则表达式");
    Matcher m = p.matcher("需要匹配的字符(串)");
    boolean b = m.matches();
    // 也可直接写成链式
    boolean b = Pattern.compile("正则表达式").matcher("需要匹配的字符(串)").matches();
  • 第二种:

    1
    boolean b = Pattern.matches("正则表达式", "需要匹配的字符(串)");

作者简介:

刘广明(@cnLGMing),一步一步往上爬。

个人博客GitHub知乎

文章若有不对之处,欢迎指正,谢谢~

版权声明:原创作品,转载时请务必注明原始出处。

留言

2016-05-11