1[3458]\d{4}(\d)\1{3}
1 匹配 1
[3458] 匹配 3 4 5 8 任意一個
\d{4} 匹配 4個0-9
(\d) 匹配 0-9並捕獲到\1
\1{4} 匹配 4個之前捕獲到的\1
public class Test9 {
/**
* 寫一個正則表達式,可以匹配尾號5連的手機號。規則: 第1位是1,第二位可以是數字3458其中之一,后面4位任意數字,最后5位為任意相同的數字。
* 例如:18601088888、13912366666
* @param args
*/
public static void main(String[] args) {
String regex="[1][3-5[8]][0-9]{4}(\\d)\\1{4}";
Scanner scanner=new Scanner(System.in);
boolean flag=true;
System.out.println("請輸入您的電話號碼");
while(flag)
{
String a=scanner.next();
if(a.toCharArray().length==11)
{
if(a.matches(regex))
{
flag=false;
System.out.println("匹配成功!");
}else
{
System.out.println("不匹配請從新輸入:");
}
}else{
System.out.println("位數不過,或着超出");
}
}
}
}