Java如何用正则表达式校验IP地址

引言

在网络通信中,IP地址是一种关键的标识符。IP地址由四个用点分隔的十进制数组成,每个数组的取值范围是0到255。在实际开发中,我们经常需要使用正则表达式来校验用户输入的IP地址是否合法。本文将介绍如何使用Java中的正则表达式来校验IP地址,并提供示例代码。

IP地址的校验规则

一个合法的IP地址应满足以下规则:

  1. IP地址由四个用点分隔的十进制数组成。
  2. 每个数组的取值范围是0到255。

根据以上规则,我们可以使用正则表达式来校验IP地址的合法性。

使用正则表达式校验IP地址

在Java中,我们可以使用java.util.regex包中的PatternMatcher类来进行正则匹配。下面是一个示例的代码片段,展示了如何使用正则表达式校验IP地址。

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

public class IpAddressValidator {
    private static final String IP_ADDRESS_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(IP_ADDRESS_PATTERN);

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

在上面的代码中,我们定义了一个静态的validate方法,该方法接受一个IP地址作为参数,并返回一个布尔值,表示该IP地址是否合法。我们使用Pattern.compile方法将正则表达式编译为一个Pattern对象,并使用matcher方法创建一个Matcher对象。然后,我们使用matches方法对输入的IP地址进行匹配,如果匹配成功则返回true,否则返回false

示例

下面是一个示例程序,展示了如何使用上述的IP地址校验方法。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个IP地址:");
        String ipAddress = scanner.nextLine();
        boolean isValid = IpAddressValidator.validate(ipAddress);
        if (isValid) {
            System.out.println("输入的IP地址合法。");
        } else {
            System.out.println("输入的IP地址不合法。");
        }
    }
}

在上述示例程序中,我们首先使用Scanner类获取用户输入的IP地址。然后,我们调用IpAddressValidator.validate方法对该IP地址进行校验,并根据返回的结果输出相应的信息。

总结

本文介绍了如何使用Java中的正则表达式校验IP地址。我们通过定义一个正则表达式,并使用PatternMatcher类进行匹配,来判断输入的IP地址是否合法。同时,提供了一个示例程序来演示如何使用IP地址校验方法。通过本文的介绍,读者可以掌握在Java中使用正则表达式校验IP地址的方法。

参考文献

  • [Java Regular Expressions - Tutorial](