Java IP及端口号正则表达式使用指南

在Java编程中,经常需要对IP地址和端口号进行校验。使用正则表达式是一个简单而有效的方法。本文将介绍如何使用Java编写正则表达式来校验IP地址和端口号,并通过流程图和饼状图展示其应用场景。

正则表达式简介

正则表达式是一种用于匹配字符串中字符组合的模式。在Java中,正则表达式可以通过java.util.regex包中的PatternMatcher类来实现。

IP地址和端口号正则表达式

IP地址

IP地址通常有两种形式:IPv4和IPv6。IPv4地址由四组0到255的数字组成,每组数字之间用点(.)分隔。IPv6地址则由八组16位的十六进制数组成,每组之间用冒号(:)分隔。

IPv4地址的正则表达式示例:

String ipv4Regex = "^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$";

端口号

端口号是一个16位的数字,范围从0到65535。

端口号的正则表达式示例:

String portRegex = "^[0-9]{1,5}$";

Java代码示例

以下是使用Java正则表达式校验IP地址和端口号的示例代码:

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

public class IPPortValidator {
    public static void main(String[] args) {
        String ipv4 = "192.168.1.1";
        String port = "8080";

        String ipv4Regex = "^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$";
        String portRegex = "^[0-9]{1,5}$";

        Pattern ipv4Pattern = Pattern.compile(ipv4Regex);
        Pattern portPattern = Pattern.compile(portRegex);

        Matcher ipv4Matcher = ipv4Pattern.matcher(ipv4);
        Matcher portMatcher = portPattern.matcher(port);

        if (ipv4Matcher.matches() && portMatcher.matches()) {
            System.out.println("IP地址和端口号校验成功!");
        } else {
            System.out.println("IP地址或端口号校验失败!");
        }
    }
}

流程图

以下是使用Mermaid语法绘制的流程图,展示了IP地址和端口号校验的流程:

flowchart TD
    A[开始] --> B{输入IP地址}
    B --> C{输入端口号}
    C --> D[校验IP地址]
    D -- 校验成功 --> E[校验端口号]
    E -- 校验成功 --> F[校验成功]
    E -- 校验失败 --> G[校验失败]
    D -- 校验失败 --> G
    F --> H[结束]
    G --> H

饼状图

以下是使用Mermaid语法绘制的饼状图,展示了IP地址和端口号校验成功与失败的比例:

pie
    title IP地址和端口号校验结果
    "校验成功" : 360
    "校验失败" : 140

结语

通过本文的介绍,我们了解到了如何使用Java正则表达式来校验IP地址和端口号。正则表达式是一种强大的工具,可以应用于多种字符串匹配场景。希望本文能够帮助您更好地理解和使用Java正则表达式。