正则表达式(一)——验证电话号码

正则表达式:

注意:

1.比如你要验证电话号码是否正确,要求是:以1开头,第2位是3,5,8,总共11位

    正则表达式应该书写成  ^[1]+[3,8]+\d{9}$

package com.ld.num;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Telephone {
	public static void main(String[] args){  
		 //需要验证的手机号
		 String tel="18631721765";
		 //正则表达式
         String reg ="^[1]+[3,8]+\d{9}$" ;  
         //编译正则表达式
     	Pattern pattern = Pattern.compile(reg);
    	
    	Matcher matcher = pattern.matcher(tel);
    	// 字符串是否与正则表达式相匹配
    	boolean rs = matcher.matches();
    	System.out.println(rs);                                
 }
		
}

运行之后提示如下错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )

	at com.ld.num.Telephone.main(Telephone.java:12)

Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )

at com.ld.num.Telephone.main(Telephone.java:12)

经过百度发现问题出在正则表达式上面个

   应该将 正则表达式中的 ^[1]+[3,8]+\d{9}$ 改为  \\d  

改完之后如下:

package com.ld.num;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Telephone {
	public static void main(String[] args){  
		 //需要验证的手机号
		 String tel="18631721765";
		 //正则表达式
         String reg ="^[1]+[3,8]+\\d{9}$" ;  
         //编译正则表达式
     	Pattern pattern = Pattern.compile(reg);
    	
    	Matcher matcher = pattern.matcher(tel);
    	// 字符串是否与正则表达式相匹配
    	boolean rs = matcher.matches();
    	System.out.println(rs);                                
 }
		
}

运行结果为true:

但是电话号码一般为186...   132.....  159.....

所以进行改进为:

         ^(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}$

代码为:

package com.ld.num;
public class Telephone {
	public static void main(String[] args){
		
		checkTel("18631721765");
		
	    }

	private static void checkTel(String tel) {
		
		//编译正则表达式
		 String reg ="^(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}$" ;  
   
         System.out.println(tel.matches(reg)?"合法":"非法"); 
	}

 

结果为:

合法

 

 

 

 

 

 

你可能感兴趣的:(正则表达式(一)——验证电话号码)