Python 正则表达式实现域名格式匹配

2023-04-03 00:00:00 域名 格式 匹配

正则表达式是一种用来描述字符串模式的语言,可以用来匹配文本中的特定模式。在 Python 中,我们可以使用内置的 re 模块来使用正则表达式。

在正则表达式中,使用 “.” 来表示匹配任意单个字符,使用 “*” 来表示匹配前面的字符 0 次或多次,使用 “+” 来表示匹配前面的字符 1 次或多次,使用 “?” 来表示匹配前面的字符 0 次或 1 次,使用 “{n,m}” 来表示匹配前面的字符最少 n 次,最多 m 次,使用 “[]” 来表示匹配中括号内的任意一个字符,使用 “()” 来表示将括号内的内容作为一个整体来匹配。

下面是一个简单的示例代码,用于匹配以 “.com” 结尾的域名:

import re

pattern = r'\w+\.com$'
domain1 = 'pidancode.com'
domain2 = 'example.org'

match1 = re.match(pattern, domain1)
match2 = re.match(pattern, domain2)

if match1:
    print(f"{domain1} 是一个以 .com 结尾的域名。")
else:
    print(f"{domain1} 不是一个以 .com 结尾的域名。")

if match2:
    print(f"{domain2} 是一个以 .com 结尾的域名。")
else:
    print(f"{domain2} 不是一个以 .com 结尾的域名。")

上述代码中,我们首先定义了一个正则表达式模式,其中 “\w+” 表示匹配一个或多个字母数字字符,而 “.com$” 表示匹配以 “.com” 结尾的字符串。然后我们分别使用 re.match() 函数来尝试匹配两个域名字符串。如果匹配成功,则输出对应的提示信息;否则输出对应的错误信息。

运行上述代码,我们可以得到以下输出:

pidancode.com 是一个以 .com 结尾的域名。
example.org 不是一个以 .com 结尾的域名。

除了以上示例代码中的模式,我们还可以根据具体需求来定义更加复杂的模式,例如匹配包含子域名的域名、匹配不同顶级域名等。在定义模式时,可以根据具体需求选择合适的正则表达式语法来进行匹配。

相关文章