Perl Regex电子邮件TLD

时间:2015-08-15 21:28:00

标签: regex perl email tld

我有这段代码:

    if ( $Mail =~ /$Tld{$_}/ ) {
        $TldFound = 1;      
    }

变量$ Mail有例如信息“mail@mail.com”。变量$ Tld具有信息“.com”。如何切换变量$ Mail,只保留tld .com?

1 个答案:

答案 0 :(得分:2)

您应该使用Email::Address来解析电子邮件地址。

为了能够确定地提取顶级域名,需要列出您认为是顶级域名(TLD)的内容。例如,.co.uk.com.tr计数?或者,你只想要最后一串非点字符吗?

如果您将注意力限制在2到3个字符的顶级域名,例如.co.com.io.net.org,{{1}等等,您可以执行.us然后查看my ($tld) = ($email =~ /[.] ([a-z]{2,3}) \z/x);等,但您确实需要一个可以作为顶级域名的可接受字符串的良好列表:Net::Domain::TLDMozilla::PublicSuffix。< / p>