返回

正则表达式教程:域名匹配规则

正则表达式

一、正则解释

正则表达式:/^([0-9a-zA-Z-]{1,}.)+([a-zA-Z]{2,})$/

  • ^: 匹配字符串开头
  • (): 分组
  • [0-9a-zA-Z-]{1,}: 匹配至少一个数字、字母或连字符
  • . :匹配一个点
  • +: 匹配前一个元素一次或多次
  • [a-zA-Z]{2,}: 匹配至少两个字母

二、使用场景

该正则表达式用于匹配域名,即不包含协议的网站地址,如 baidu.com、www.google.com

三、代码示例

JavaScript

const regex = /^([0-9a-zA-Z-]{1,}\.)+([a-zA-Z]{2,})$/;

const testDomains = ["www.baidu.com", "baidu.com", "baidu.com.cn", "api.baidu.com", "nodejs.org", "nodejs.cn"];

for (let domain of testDomains) {
  if (regex.test(domain)) {
    console.log(`${domain} is a valid domain.`);
  } else {
    console.log(`${domain} is not a valid domain.`);
  }
}

Java

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DomainMatcher {

  public static void main(String[] args) {
    String regex = "^([0-9a-zA-Z-]{1,}\\.)+([a-zA-Z]{2,})
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DomainMatcher {

  public static void main(String[] args) {
    String regex = "^([0-9a-zA-Z-]{1,}\\.)+([a-zA-Z]{2,})$";
    Pattern pattern = Pattern.compile(regex);

    String[] testDomains = {"www.baidu.com", "baidu.com", "baidu.com.cn", "api.baidu.com", "nodejs.org", "nodejs.cn"};

    for (String domain : testDomains) {
      Matcher matcher = pattern.matcher(domain);
      if (matcher.matches()) {
        System.out.println(domain + " is a valid domain.");
      } else {
        System.out.println(domain + " is not a valid domain.");
      }
    }
  }
}
quot;
; Pattern pattern = Pattern.compile(regex); String[] testDomains = {"www.baidu.com", "baidu.com", "baidu.com.cn", "api.baidu.com", "nodejs.org", "nodejs.cn"}; for (String domain : testDomains) { Matcher matcher = pattern.matcher(domain); if (matcher.matches()) { System.out.println(domain + " is a valid domain."); } else { System.out.println(domain + " is not a valid domain."); } } } }

PHP

<?php

$regex = '/^([0-9a-zA-Z-]{1,}\.)+([a-zA-Z]{2,})$/';

$testDomains = ["www.baidu.com", "baidu.com", "baidu.com.cn", "api.baidu.com", "nodejs.org", "nodejs.cn"];

foreach ($testDomains as $domain) {
  if (preg_match($regex, $domain)) {
    echo "$domain is a valid domain.\n";
  } else {
    echo "$domain is not a valid domain.\n";
  }
}

Python

import re

regex = r"^([0-9a-zA-Z-]{1,}\.)+([a-zA-Z]{2,})
import re

regex = r"^([0-9a-zA-Z-]{1,}\.)+([a-zA-Z]{2,})$"

testDomains = ["www.baidu.com", "baidu.com", "baidu.com.cn", "api.baidu.com", "nodejs.org", "nodejs.cn"]

for domain in testDomains:
  if re.match(regex, domain):
    print(f"{domain} is a valid domain.")
  else:
    print(f"{domain} is not a valid domain.")
quot;
testDomains = ["www.baidu.com", "baidu.com", "baidu.com.cn", "api.baidu.com", "nodejs.org", "nodejs.cn"] for domain in testDomains: if re.match(regex, domain): print(f"{domain} is a valid domain.") else: print(f"{domain} is not a valid domain.")