1. 程式人生 > >正則表示式 IP 正則表示式 合法IP

正則表示式 IP 正則表示式 合法IP

為了以後的不時之需。

適用於Java 語言。

        String validIpRegex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
                + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
                + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
                + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";

正則表示式:

^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$  

測試用例:

@Test
public void testValidIP() {

	List<String> testIPList = new ArrayList<>();
	//Valid
	testIPList.add("111.168.0.1");
	testIPList.add("42.123.97.36");
	//Invalid
	testIPList.add("-");
	testIPList.add("0.0.0.0");
	testIPList.add("1.001.01.1");
	testIPList.add("1921.168.255.255");

	String validIpRegex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
			+ "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
			+ "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
			+ "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";


	//System.out.println(validIpRegex);

	Pattern pattern = Pattern.compile(validIpRegex);
	for (String testIP : testIPList) {
		Matcher matcher =  pattern.matcher(testIP);
		if(!matcher.find()){
			System.out.println("invalid ip : " + testIP);
		}
	}
}