我需要比较Perl中的两个网址。
仅包含DOMAIN或DOMAIN /(根网址以斜杠结尾)的网址是等效的。
那就是说,以下字符串应该相等: “http://example.com”和“http://example.com/”。
答案 0 :(得分:5)
To compare two URLs, use the eq( ) method:
if ($url_one->eq(url_two)) { ... }
For example:
use URI;
my $url_one = URI->new('http://www.example.com');
my $url_two = URI->new('http://www.example.com/');
if ($url_one->eq($url_two)) {
print "The two URLs are equal.\n";
}
The two URLs are equal.
答案 1 :(得分:0)
你可以这样做:
my $url_1 = 'http://www.example.com';
my $url_2 = 'http://www.example.com/';
if ( $url_1 =~ m/\A$url_2\/\z/ || $url_2 =~ m/\A$url_1\/\z/ ) {
print "URLs are the same\n";
}
考虑到它们确实是有效的URL。 正则表达式只检查如果你在末尾添加“/”,它仍然是相同的URL
因此,如果您在$ url_1的末尾添加“/”,那么它将是'http://www.example.com/',这将使if中的第二个条件为真。