1.匹配字符串

1.1 string.matches(regex)

String email = "LJ@qq.com";

String regex = "^\\w+@\\w+(\\.\\w+)+$";

//matches的底层也是Pattern

boolean flag = email.matches(regex);

System.out.println(flag);

1.2  pattern.matcher( string)

String email = "LJ@qq.com";

String regex = "^\\w+@\\w+(\\.\\w+)+$";

//java的正则标准写法

Pattern pattern = Pattern.compile(regex);

Matcher matcher = pattern.matcher(email);

boolean flag = matcher.matches();

System.out.println(flag);
2. 正则的作用截取子串
String regex = "^\\w+@(\\w+)(\\.\\w+)+$";

String email = "LJ@qq.com";

Pattern pattern = Pattern.compile(regex);

Matcher matcher = pattern.matcher(email);

boolean flag = matcher.matches();

if(flag){

    for(int i = 0;i<=matcher.groupCount();i++){

       //捕获组

      String g = matcher.group(i);

      System.out.println(g);

    }

}else{

    System.out.println("匹配失败!");

}

结果:LJ@qq.com

           qq

          .com

2.1注意事项

1.捕获组是从1开始,0号捕获组是全部字符串

2.String email = "LJ@qq.com.cn";

  如果写成这样,捕获的结果应该是离捕获组最近的那个 .cn   。因为先匹配.com 再匹配.cn

3.String regex = "^\\w+@(\\w+)(?:\\.\\w+)+$";

结果是:qq.加上?:的效果的不捕获文本,也不进行计数