在 Java 中,可以使用正则表达式来验证 IP 地址。IP 地址是一个四组数字,每组数字最多有三位,取值范围是 0~255。因此,可以使用如下的正则表达式来验证 IP 地址:
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])$";
上述正则表达式中使用了分组、字符类、量词和转义符等语法元素。
下面是一个示例程序,演示如何使用 Java 的正则表达式验证 IP 地址:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
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();
}
public static void main(String[] args) {
String[] ips = {"192.168.1.1", "256.168.1.1", "192.168.01.1", "192.168.1"};
for (String ip : ips) {
System.out.println(ip + ": " + validate(ip));
}
}
}
在这个示例程序中:
IPADDRESS_PATTERN 是表示 IP 地址的正则表达式。
Pattern.compile 函数根据正则表达式创建一个 Pattern 对象。
validate 函数使用 Pattern.matcher 函数根据指定的 IP 地址字符串创建一个 Matcher 对象,再调用 Matcher.matches 函数来判断该 IP 地址是否符合正则表达式的格式要求。
在 main 函数中,测试了多个 IP 地址,输出验证结果。
需要注意的是,上述正则表达式只验证 IP 地址的格式是否正确,不保证其实际可用性。