正则表达式匹配IP地址


前言:

      IPv4地址可以用表示32位整数值的任何符号表示。它们通常用点十进制表示法编写  ,它由地址的四个八位字节组成,以十进制数字表示并用.点分隔。

例如,四点IP地址172.16.255.1

正则表达式匹配IP地址

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

/**
 * @author dhing
 */
public class Ip {
    private static String pattern = "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\."
        + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])$";

    private final static Pattern regexPattern = Pattern.compile(pattern);

    public static boolean isValidIp(final String ip) {
        Matcher matcher = regexPattern.matcher(ip);
        return matcher.matches();
    }

    public static void main(String[] args) {
        System.out.println(isValidIp("000.12.12.034")); //true
        System.out.println(isValidIp("121.234.12.21"));//true
        System.out.println(isValidIp("23.45.12.65"));//true
        System.out.println(isValidIp("0.1.2.3"));//true
        System.out.println(isValidIp("666.666.23.23"));//false
        System.out.println(isValidIp(".12.32.232.23"));//false
    }
}