正则表达式匹配的三种方法

在这里以邮箱,手机号码匹配为例,正则表达式大全

[注]:在其他语言中,\ 表示:我想要在正则表达式中插入一个普通的(字面上的)反斜杠,请不要给它任何特殊的意义。
在 Java 中,\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。
所以,在其他的语言中(如Perl),一个反斜杠 \ 就足以具有转义的作用,而在 Java 中正则表达式中则需要有两个反斜杠才能被解析为其他语言中的转义作用。也可以简单的理解在 Java 的正则表达式中,两个 \ 代表其他语言中的一个 \,这也就是为什么表示一位数字的正则表达式是 \d,而表示一个普通的反斜杠是 \\。

public static void main(String[]args){
  //第一种   此处以邮箱匹配为例
  Pattern pattern1 = Pattern.compile("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");
  Matcher matcher=pattern1.matcher("1354698235@qq.com");
  if(matcher.matches()){
   System.out.println("匹配成功");
  }else{
   System.out.println("匹配失败");
  }
  System.out.println("-------------------");
  //第二种   此处以手机号码匹配为例
  String str1="^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$";
  String str2="15639871024";
  if(str2.matches(str1)){
   System.out.println("匹配成功");
  }else{
   System.out.println("匹配失败");
  }
  System.out.println("-------------------");
  //第三种   此处匹配国内电话号码为例
  String str3="\\d{3}-\\d{8}|\\d{4}-\\d{7}";
  String str4="021-87888822";
  if(Pattern.matches(str3,str4)){
   System.out.println("匹配成功");
  }else{
   System.out.println("匹配失败");
  }
 }