在Perl中保存URL的相关部分
我正在执行以下操作以将URL的相关部分保存到Perl变量:在Perl中保存URL的相关部分,perl,Perl,我正在执行以下操作以将URL的相关部分保存到Perl变量: ($url) = $url =~ m! (.+?\w) (?: /|\z) !x; ($url) = $url =~ /\/\/(.*)/; 我试图保存“http(s |):/”和下一个“/”之间的所有内容。有没有更好的方法在单行上执行此操作?使用此正则表达式::\/\/([^\/]+)\/ 例如: #!/usr/bin/perl $url = 'http://stackoverflow.com/questions/'; $url
($url) = $url =~ m! (.+?\w) (?: /|\z) !x;
($url) = $url =~ /\/\/(.*)/;
我试图保存“http(s |):/”和下一个“/”之间的所有内容。有没有更好的方法在单行上执行此操作?使用此正则表达式:
:\/\/([^\/]+)\/
例如:
#!/usr/bin/perl
$url = 'http://stackoverflow.com/questions/';
$url =~ /:\/\/([^\/]+)\//;
print $1."\n";
使用此正则表达式:
:\/\/([^\/]+)\/
例如:
#!/usr/bin/perl
$url = 'http://stackoverflow.com/questions/';
$url =~ /:\/\/([^\/]+)\//;
print $1."\n";
使用
产出:
www.stackoverflow.com
www.stackoverflow.com:80
使用
产出:
www.stackoverflow.com
www.stackoverflow.com:80
URI.pm很好,但您并不总是需要开销
my ($host_port) = $uri =~ m{ ^ https? :// ([^/]*) }xi;
或者如果你只是想要主人
my ($host) = $uri =~ m{ ^ https? :// ([^/:]*) }xi;
URI.pm很好,但您并不总是需要开销
my ($host_port) = $uri =~ m{ ^ https? :// ([^/]*) }xi;
或者如果你只是想要主人
my ($host) = $uri =~ m{ ^ https? :// ([^/:]*) }xi;
您想要什么
http://host:8080/
?我想我想要包括端口。你想要什么http://host:8080/
?我想我希望包含端口。注意:如果URI的格式不正确,这将给出错误的结果。我无法使其正常工作,但可能是我做错了。注意:这将给出如果URI的格式不正确,则返回错误的结果。我无法使其正常工作,但可能是我做错了什么。