如何使用正则表达式验证域名

时间:2024-11-15 12:46:48
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 } }