python正则匹配域名
时间: 2023-10-29 09:59:46 浏览: 23
可以使用正则表达式来匹配域名。以下是一个基本的示例:
```python
import re
# 定义一个简单的域名匹配规则
domain_regex = r'^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$'
# 测试匹配的域名
test_domains = [
'example.com',
'www.example.com',
'sub.example.co.uk',
'example',
'example.',
'example.com.',
'example-.com',
'example.com-',
'example-.com.',
'example.com-.',
]
# 遍历测试域名并输出匹配结果
for domain in test_domains:
match = re.match(domain_regex, domain)
if match:
print(f'{domain}: 匹配成功')
else:
print(f'{domain}: 匹配失败')
```
运行结果如下:
```
example.com: 匹配成功
www.example.com: 匹配成功
sub.example.co.uk: 匹配成功
example: 匹配失败
example.: 匹配失败
example.com.: 匹配失败
example-.com: 匹配失败
example.com-: 匹配失败
example-.com.: 匹配失败
example.com-.: 匹配失败
```
在上面的代码中,我们定义了一个名为 `domain_regex` 的正则表达式,用于匹配常见的域名格式。我们使用 `re.match` 方法将测试域名与该正则表达式进行匹配,如果匹配成功,则输出“匹配成功”,否则输出“匹配失败”。