Regex 验证FQDN

Regex 验证FQDN,regex,dns,fqdn,Regex,Dns,Fqdn,我在上找到此正则表达式以验证FQDN域: (?=^.{1,254}$)(^(?:(?!\d+\.|-)[a-zA-Z0-9_\-]{1,63}(?<!-)\.?)+(?:[a-zA-Z]{2,})$) (?=^.{1254}$)(^(?:(?!\d+\.\124;-)[a-zA-Z0-9\-]{1,63}(?)? 它基本上可以工作,但我想修改它,使其不允许主机名包含三个或更多字符且没有域。例如,目前这是有效的: 万维网 这不是: ww 这也是: www.test.com 我想将其修改为不

我在上找到此正则表达式以验证FQDN域:

(?=^.{1,254}$)(^(?:(?!\d+\.|-)[a-zA-Z0-9_\-]{1,63}(?<!-)\.?)+(?:[a-zA-Z]{2,})$)
(?=^.{1254}$)(^(?:(?!\d+\.\124;-)[a-zA-Z0-9\-]{1,63}(?)?
它基本上可以工作,但我想修改它,使其不允许主机名包含三个或更多字符且没有域。例如,目前这是有效的:

万维网

这不是:

ww

这也是:

www.test.com

我想将其修改为不允许第一个示例。换句话说,检查始终存在一个域

谢谢。

试试这个:

(?=^.{1,254}$)(^(?:(?!\d+\.|-)[a-zA-Z0-9_\-]{1,63}(?<!-)\.)+(?:[a-zA-Z]{2,})$)
(?=^.{1254}$)(^(?:(?!\d+\.\124;-)[a-zA-Z0-9\-]{1,63}(?)?

正则表达式“子域”部分结束后的时间段后的问号已被删除,使其成为强制性的,而不是可选的。

它不是正则表达式,但它还有很多作用: