我有这段代码:
if ( $Mail =~ /$Tld{$_}/ ) {
$TldFound = 1;
}
变量$ Mail有例如信息“mail@mail.com”。变量$ Tld具有信息“.com”。如何切换变量$ Mail,只保留tld .com?
答案 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::TLD,Mozilla::PublicSuffix。< / p>