我需要想出一个正则表达式来根据 RFC-1123和RFC-952验证主机名。
现在我正在使用这个:
^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?)*\.?$/
但这并不能解决问题,因为它不会被a.
视为无效的主机名。
如何增强 reg 表达式以符合这些 RFC?
谢谢
Regexp::Common包含与RFC-1035匹配的正则表达式,这是否足够好?
我在CPAN上找到了Data::Validate::Domain。
我没有尝试过,但它看起来很有希望(有积极的评论等)。