如何有效填写以下条件的有效域名正则表达式。
例如
一些有效的组合:
a
a.com
aa-bb.b
我创建了这个^(([a-z0-9]){1,63}\.?){1,255}$
但目前它没有根据要求验证' - '部分(它是,缺少)
有什么办法吗?
如果我错了,请告诉我。答案 0 :(得分:3)
并且必须以'。'结尾。 : 在这里我找到了解决方案
"^(((([A-Za-z0-9]+){1,63}\.)|(([A-Za-z0-9]+(\-)+[A-Za-z0-9]+){1,63}\.))+){1,255}$"
答案 1 :(得分:1)
也许这个:
^(([a-zA-Z0-9\-]{1,63}\.?)+(\-[a-zA-Z0-9]+)){1,255}$
答案 2 :(得分:1)
不要重新发明轮子。您可以使用一个库,例如验证者。或者,您可以复制their code:
pip install validators
import validators
if validators.domain('example.com')
print('this domain is valid')
在不太可能的情况下,如果您发现错误,则可以修复并报告该错误。
答案 3 :(得分:0)
请勿使用正则表达式解析域名,请使用urllib.parse。
如果您需要在HTML中查找有效的域名,请使用正则表达式[ <>]
拆分页面文本,然后使用urllib.parse解析每个结果字符串。
答案 4 :(得分:0)
试试这个:
^(([a-z0-9]\-*[a-z0-9]*){1,63}\.?){1,255}$
答案 5 :(得分:0)
使用| RE中的运算符后跟' - '..确保使用\
转义文字' - '答案 6 :(得分:0)
答案 7 :(得分:0)
此表达式应满足所有要求:
^(?=.{1,255}$)(?!-)[A-Za-z0-9\-]{1,63}(\.[A-Za-z0-9\-]{1,63})*\.?(?<!-)$
.
结束