返回
正则表达式教程:域名匹配规则
正则表达式
2024-02-28 16:09:44
一、正则解释
正则表达式:/^([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.")