python - 检查字符串中的有效域名?

标签 python regex string dns

我正在使用 python 并想要一个简单的正则表达式来检查域名的有效性。我检查至少写域名。

url = 'https://stackoverflow'
        keyword = 'foo'
        with self.assertRaises(ValueError):
            check_keyword(url, keyword)

我尝试在 url 文本字段上进行单元测试,并且在 main.py 页面上我完成了验证 main.py-

def check_keyword(url, keyword):

if re.match("^(((([A-Za-z0-9]+){1,63}\.)|(([A-Za-z0-9]+(\-)+[A-Za-z0-9]+){1,63}\.))+){1,255}$" ,url):
   return ValueError("Invalid")

例子

最佳答案

sourcevalidators module显示,这可能是一个更复杂的任务。

你可以使用那个模块:

>>> import validators
>>> validators.domain('example.com')
True

>>> validators.domain('example.com/')
ValidationFailure(func=domain, ...)

或者您可以使用 Domain names 的 RFC构建您自己的检查器。

关于python - 检查字符串中的有效域名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45010810/

相关文章:

string - Matlab strcat 不返回字符串?

python - python3 扫雷排序中的嵌套列表无法正常工作

python - memcached 中的 Scrapy http 缓存存储

c# - 如何防止在 C# 中手动输入 ComboBox

c++ - 一次从 .txt 文件读取两行 - C++ getline/streams?

javascript - 用于验证逗号分隔的唯一数字列表的正则表达式

python - 无法挖掘链接按钮下的某些信息

python - 解析/识别职位描述中的部分

html - SEO mod_rewrite 内部 uri 目录问题

c++ - 如何在正则表达式中表示 C++ 函数名?