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

Vip*_*war 5 python regex string dns

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

url = 'https://stackoverflow'
        keyword = 'foo'
        with self.assertRaises(ValueError):
            check_keyword(url, keyword)
Run Code Online (Sandbox Code Playgroud)

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

def check_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")
Run Code Online (Sandbox Code Playgroud)

Chr*_*nig 5

的的验证模块显示,这也许是有点更复杂的任务。

您可以使用该模块:

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

>>> validators.domain('example.com/')
ValidationFailure(func=domain, ...)
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用域名的RFC 来构造自己的检查器。