如何使用正则表达式验证域名
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DomainValidator {
// 域名验证正则表达式
private static final String DOMAIN_REGEX = "^(?:[a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,}$";
// 验证域名是否合法
public static boolean isValidDomain(String domain) {
// 创建模式对象
Pattern pattern = Pattern.compile(DOMAIN_REGEX);
// 创建匹配器对象
Matcher matcher = pattern.matcher(domain);
// 返回是否匹配
return matcher.matches();
}
// 测试方法
public static void main(String[] args) {
// 测试合法域名
System.out.println(isValidDomain("example.com")); // true
System.out.println(isValidDomain("www.example.com")); // true
System.out.println(isValidDomain("subdomain.example.co")); // true
System.out.println(isValidDomain("my-website.example.org")); // true
// 测试不合法域名
System.out.println(isValidDomain("example..com")); // false
System.out.println(isValidDomain("-example.com")); // false
System.out.println(isValidDomain("example-.com")); // false
System.out.println(isValidDomain(".example.com")); // false
System.out.println(isValidDomain("example")); // false
System.out.println(isValidDomain("example.c")); // false
System.out.println(isValidDomain("example.123")); // false
}
}