在 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 地址的格式是否正確,不保證其實際可用性。