比较两个网址

时间:2012-10-22 11:11:18

标签: regex perl

我需要比较Perl中的两个网址。

仅包含DOMAIN或DOMAIN /(根网址以斜杠结尾)的网址是等效的。

那就是说,以下字符串应该相等: “http://example.com”和“http://example.com/”。

2 个答案:

答案 0 :(得分:5)

comparsion

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中的第二个条件为真。