先來看正則表達式:正則表達式
- 匹配區號3到4位,電話7到8位的固定電話號碼:0\d{2,3}-[1-9]\d{6,7}
- 匹配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
- 0\d{2,3}爲區號:國內區號都是以0開頭;\d{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