📜  如何在Java中使用正则表达式验证 IP 地址(1)

📅  最后修改于: 2023-12-03 14:52:45.295000             🧑  作者: Mango

如何在Java中使用正则表达式验证 IP 地址

在Java中,我们可以使用正则表达式来验证IP地址是否合法。IP地址由四个字节构成,每个字节的取值范围是0-255。以下是如何使用正则表达式验证IP地址的代码片段。

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

public class IPAddressValidator {

    private static final String IPADDRESS_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 static final Pattern pattern = Pattern.compile(IPADDRESS_PATTERN);

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

这段代码首先定义了一个字符串IPADDRESS_PATTERN,用来表示IP地址的正则表达式。在正则表达式中,^$分别表示字符串的开始和结束,\\.表示匹配.字符,[01]?\\d\\d?|2[0-4]\\d|25[0-5]表示匹配0-255之间的数字。最后,我们使用Pattern类的compile方法来将这个正则表达式编译成一个Pattern对象,并使用Matcher类的matches方法来验证IP地址是否合法。

下面是一个使用示例:

public static void main(String[] args) {
    System.out.println(IPAddressValidator.validate("192.168.1.1")); // true
    System.out.println(IPAddressValidator.validate("256.0.0.0")); // false
    System.out.println(IPAddressValidator.validate("192.168.1.256")); // false
    System.out.println(IPAddressValidator.validate("192.168.1")); // false
}

代码执行结果:

true
false
false
false

使用正则表达式来验证IP地址可以很方便地避免IP地址格式错误的问题,同时也能提高程序的可靠性和安全性。