我需要提出一个正则表达式来验证主机名 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?
由于
答案 0 :(得分:8)
Regexp::Common包含与regex匹配的RFC-1035,这还不错吗?
答案 1 :(得分:5)
我在Data::Validate::Domain上找到CPAN。
我没有尝试过这个,但看起来很有希望(有积极的评论等)。