在 Java 中,可以使用正則表達(dá)式來驗(yàn)證 IP 地址。IP 地址是一個(gè)四組數(shù)字,每組數(shù)字最多有三位,取值范圍是 0~255。因此,可以使用如下的正則表達(dá)式來驗(yàn)證 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])$";
上述正則表達(dá)式中使用了分組、字符類、量詞和轉(zhuǎn)義符等語法元素。
下面是一個(gè)示例程序,演示如何使用 Java 的正則表達(dá)式驗(yàn)證 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));
}
}
}
在這個(gè)示例程序中:
IPADDRESS_PATTERN 是表示 IP 地址的正則表達(dá)式。
Pattern.compile 函數(shù)根據(jù)正則表達(dá)式創(chuàng)建一個(gè) Pattern 對象。
validate 函數(shù)使用 Pattern.matcher 函數(shù)根據(jù)指定的 IP 地址字符串創(chuàng)建一個(gè) Matcher 對象,再調(diào)用 Matcher.matches 函數(shù)來判斷該 IP 地址是否符合正則表達(dá)式的格式要求。
在 main 函數(shù)中,測試了多個(gè) IP 地址,輸出驗(yàn)證結(jié)果。
需要注意的是,上述正則表達(dá)式只驗(yàn)證 IP 地址的格式是否正確,不保證其實(shí)際可用性。