正則表達式 判斷 連號如“123456”、同號如“888888”、連同號如“112233”“222333”...

正則表達式 判斷 連號如“123456”、同號如“888888”、連同號如“112233”“222333”

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Regu {

	public static void main(String[] args) {
		//匹配6位順增
		String pattern = "(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}\\d";
		Pattern pa = Pattern.compile(pattern);
		String mc = "123456";
		Matcher ma = pa.matcher(mc);
		System.out.println("6位順增 :" + ma.matches());
		System.out.println("*******分割線*******");
		
		//匹配6位順降
		pattern = "(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5}\\d";
		pa = Pattern.compile(pattern);
		mc = "654321";
		ma = pa.matcher(mc);
		System.out.println("6位順降 :" + ma.matches());
		System.out.println("*******分割線*******");
		
		//匹配6位順增或順降
		pattern = "(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}|(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5})\\d";
		pa = Pattern.compile(pattern);
		mc = "234567";
		ma = pa.matcher(mc);
		System.out.println("6位順增或順降 :" + ma.matches());
		System.out.println("*******分割線*******");
		
		//匹配4-9位連續的數字
		pattern = "(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){3,}|(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){3,})\\d";
		pa = Pattern.compile(pattern);
		mc = "123456789";
		ma = pa.matcher(mc);
		System.out.println("4-9位連續的數字 :" + ma.matches());
		System.out.println("*******分割線*******");
		
		//匹配3位以上的重複數字
		pattern = "([\\d])\\1{2,}";
		pa = Pattern.compile(pattern);
		mc = "888888";
		ma = pa.matcher(mc);
		System.out.println("3位以上的重複數字 :" + ma.matches());
		System.out.println("*******分割線*******");
		
		//匹配手機號碼類
		pattern = "(13[0-9]|15[0-9]|18[0-9])([\\d]{2,4}){2}";
		pa = Pattern.compile(pattern);
		mc = "18930333033";
		ma = pa.matcher(mc);
		System.out.println("手機號碼 :" + ma.matches());
		System.out.println("*******分割線*******");
	
//		//匹配連同號如“112233”“222333”
//		pattern = "([\\d])\1{1,}([\\d])\\2{2,}"; //這個測試沒有通過,要重新編寫
//		pa = Pattern.compile(pattern);
//		mc = "33111";
//		ma = pa.matcher(mc);
//		System.out.println("連同號如112233 , 222333 :" + ma.matches());
		System.out.println("*******分割線*******");
		
		//匹配2233類型
		pattern = "([\\d])\\1{1,}([\\d])\\2{1,}";
		pa = Pattern.compile(pattern);
		mc = "2233";
		ma = pa.matcher(mc);
		System.out.println("2233類型 :" + ma.matches());
		System.out.println("*******分割線*******");
		
	}
}

 

參考 http://www.williamlong.info/archives/1972.html 這個朋友的博文,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章