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


先來看正則表達式:

  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代碼:

 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} 正則分析:

  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位手機號碼

Java代碼:

 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}

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM