兩個正則表達式:匹配固定電話號碼,匹配手機號碼

先來看正則表達式:正則表達式

  1. 匹配區號3到4位,電話7到8位的固定電話號碼0\d{2,3}-[1-9]\d{6,7}
  2. 匹配11位手機號碼1[3-9]\\d{9}

 

1. 匹配區號3到4位,電話7到8位的固定電話,區號與電話號之間用-分隔測試

Java代碼:spa

 1 public void phoneNumber() {  2 
 3         String regex = "0\\d{2,3}-[1-9]\\d{6,7}";  4 
 5         ArrayList<String> list = new ArrayList<>();  6         list.add("010 12345678");  7         list.add("A20-9999999");  8         list.add("0755-7654.321");  9         list.add("010-12345678"); 10         list.add("020-9999999"); 11         list.add("0755-7654321"); 12 
13         for (String s : list) { 14             if (s.matches(regex)) { 15                 System.out.println("測試成功: " + s); 16             } else { 17                 System.out.println("測試失敗: " + s); 18  } 19  } 20     }

0\d{2,3}-[1-9]\d{6,7} 正則分析:code

  1.  0\d{2,3}爲區號:國內區號都是以0開頭;\d{2,3},2到3位任意數字;
  2. - :區號與電話號分隔;
  3.  [1-9]\d{6,7}爲電話號: [1-9],電話號第一位不能爲0;\d{6,7},6到7位任意數字。

 

 

2. 匹配11位手機號碼blog

Java代碼:class

 1 public void telephoneNumber() {  2 
 3         String regex = "1[3-9]\\d{9}";  4 
 5 
 6         ArrayList<String> list = new ArrayList<>();  7         list.add("15616161616");  8         list.add("15912340987");  9         list.add("01234567891"); 10         list.add("29872154879"); 11         list.add("12345678910"); 12         list.add("0755-7654321"); 13 
14         for (String s : list) { 15             if (s.matches(regex)) { 16                 System.out.println("測試成功: " + s); 17             } else { 18                 System.out.println("測試失敗: " + s); 19  } 20  } 21     }

1[3-9]\\d{9} List

分析:國內手機號第一位都是1,第二位是3-9之間的數字,後面9位可任意取di

相關文章
相關標籤/搜索