我試過幾種不同的正則表達式,但是我仍然無法得到$found
返回結果。我在regexterster.com上測試了這些正則表達式,它與@domains
中的示例顯示正匹配。Perl:正則表達式匹配不成功
我懷疑我在做一個非常noobish錯誤的位置:
use strict;
use warnings;
my @domains = ('apples.eat-healthy.com', 'seeds.for-parrots.co.nz', 'spam.sender.info');
my $domain_patterns = qr/
[A-Z0-9-]+\.[A-Z0-9]{3}$|
[A-Z0-9-]+\.[A-Z0-9]{2}\.[A-Z0-9]{2}$|
[A-Z0-9-]+\.[A-Z0-9]{4}$
/x;
foreach my $domain (@domains) {
if (my ($found) = $domain =~ m/($domain_patterns)/i) {
print "Found: $found\n";
}
}
可能有人請指出我在做什麼錯誤?
[域:: PublicSuffix(HTTP:// search.cpan.org/perldoc?Domain::PublicSuffix)可能對你有用。 – ikegami
@ikegami謝謝。我會研究這一點。 –
我覺得有趣的是,regextester.com默認設置爲「i」,「g」,「m」和「s」標誌(不區分大小寫,全局,多行和新行計爲空格)對於我所知道的任何語言來說,無疑是造成OP的困惑的原因。 – dodgethesteamroller