1

我需要想出一个正则表达式来根据 RFC-1123RFC-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?

谢谢

4

2 回答 2

9

Regexp::Common包含与RFC-1035匹配的正则表达式,这是否足够好?

于 2010-06-10T09:17:42.633 回答
6

我在CPAN上找到了Data::Validate::Domain

我没有尝试过,但它看起来很有希望(有积极的评论等)。

于 2010-06-10T07:49:53.677 回答