您的位置:

Java正则表达式校验

一、什么是正则表达式

正则表达式是指一个规则表达式,用于描述符合某些特定规则的字符串。通过正则表达式可以方便地进行字符串匹配和替换操作。

在Java中,可以使用Java.util.regex包下的类实现正则表达式的使用。

二、正则表达式的基本语法

在Java中,通过Pattern和Matcher两个类来组合使用正则表达式。

    // 创建Pattern对象
    Pattern pattern = Pattern.compile("正则表达式规则");
    
    // 创建Matcher对象
    Matcher matcher = pattern.matcher("需要匹配的字符串");

正则表达式规则由普通字符和转义字符两种组合而成,其中常用的转义字符如下:

  • \\d:匹配任意数字
  • \\w:匹配任意字母、数字、下划线
  • \\s:匹配任意空白字符,包括空格、制表符等
  • \\D:匹配除数字以外的任意字符
  • \\W:匹配除字母、数字、下划线以外的任意字符
  • \\S:匹配除空白字符以外的任意字符

特殊字符可以放在方括号内表示范围,如[1-9]表示匹配1~9之间的任意一个数字。

三、常见的正则表达式校验

1、校验邮箱地址

校验邮箱地址是否合法,可以使用如下正则表达式:

    String email = "example@example.com";
    Pattern pattern = Pattern.compile("^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$");
    Matcher matcher = pattern.matcher(email);
    if(matcher.matches()){
        System.out.println("邮箱地址合法");
    }else{
        System.out.println("邮箱地址不合法");
    }

2、校验手机号码

校验手机号码是否合法,可以使用如下正则表达式:

    String phoneNumber = "13812345678";
    Pattern pattern = Pattern.compile("^1[3-9]\\d{9}$");
    Matcher matcher = pattern.matcher(phoneNumber);
    if(matcher.matches()){
        System.out.println("手机号码合法");
    }else{
        System.out.println("手机号码不合法");
    }

3、校验身份证号码

校验身份证号码是否合法,可以使用如下正则表达式:

    String idCard = "330301199001011234";
    Pattern pattern = Pattern.compile("^\\d{17}[\\dxX]$");
    Matcher matcher = pattern.matcher(idCard);
    if(matcher.matches()){
        System.out.println("身份证号码合法");
    }else{
        System.out.println("身份证号码不合法");
    }

4、校验密码强度

校验密码强度是否符合要求,可以使用如下正则表达式:

    String password = "1qaz@WSX";
    int strong = 0;
    Pattern pattern = Pattern.compile("^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,16}$");
    Matcher matcher = pattern.matcher(password);
    if(matcher.matches()){
        if(Pattern.compile("\\d").matcher(password).find()){
            strong ++;
        }
        if(Pattern.compile("[a-z]").matcher(password).find()){
            strong ++;
        }
        if(Pattern.compile("[A-Z]").matcher(password).find()){
            strong ++;
        }
        if(strong < 2){
            System.out.println("密码强度较弱");
        }else if(strong == 2){
            System.out.println("密码强度一般");
        }else{
            System.out.println("密码强度较强");
        }
    }else{
        System.out.println("密码格式不正确");
    }

四、总结

本文介绍了正则表达式在Java中的基本语法和常见的使用场景,包括邮箱地址、手机号码、身份证号码和密码强度等校验。通过正则表达式的强大功能,可以方便地进行字符串匹配和替换操作,提高代码的效率。