📜  java ip 正则表达式模式 - Java (1)

📅  最后修改于: 2023-12-03 15:15:56.374000             🧑  作者: Mango

Java IP 正则表达式模式

简介

在Java编程中,正则表达式经常用于验证或匹配各种文本。其中最常见的需要是校验IP地址。IP地址是一种标识设备在网络中位置的数字地址。IPv4地址被指定为四个八位二进制数,唯一标识由点分隔符分隔的四个十进制数。IPv6地址是由八个十六进制数表示的一组数字,用冒号分隔。我们可以使用正则表达式验证和匹配这两种类型的IP地址。

IPv4 正则表达式模式

IPv4地址由四个八位二进制数组成,范围从0到255。使用正则表达式,可以验证输入的字符串是IPv4地址。

String regex = "^([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])$";
Pattern pattern = Pattern.compile(regex);
String ip = "192.168.1.100";
Matcher matcher = pattern.matcher(ip);
boolean isValid = matcher.matches();
System.out.println("Is valid IPv4 address: " + isValid);
  • ^$ 符号用于匹配输入的开始和结尾,确保整个字符串都是一个地址。
  • [01]?\\d\\d?|2[0-4]\\d|25[0-5] 用于匹配0到255之间的数字。
IPv6 正则表达式模式

IPv6地址由八个十六进制数字组成,表示为x:x:x:x:x:x:x:x形式,其中每个x是0到ffff之间的十六进制数。我们可以使用正则表达式来验证IPv6地址。

String regex = "^(?:[a-fA-F0-9]{1,4}:){7}[a-fA-F0-9]{1,4}$";
Pattern pattern = Pattern.compile(regex);
String ip = "2001:0db8:85a3:0000:0000:8a2e:0370:7334";
Matcher matcher = pattern.matcher(ip);
boolean isValid = matcher.matches();
System.out.println("Is valid IPv6 address: " + isValid);
  • ^$ 符号用于匹配输入的开始和结尾,确保整个字符串都是IPv6地址。
  • (?:[a-fA-F0-9]{1,4}:){7} 匹配7个组成IPv6地址的十六进制数。
  • [a-fA-F0-9]{1,4} 匹配一个四位数的十六进制数。
总结

在Java编程中,你可以使用正则表达式验证或匹配IPv4或IPv6地址。这篇文章提供了两个正则表达式模式来实现这个功能。直接使用上述代码片段即可实现验证或匹配IP地址。