删除字符串中的最后一个URL名称

Bln*_*kem 1 perl cgi

我需要删除变量中的最后一个页面名称.

这是我的代码到目前为止,但我松开.jpg扩展,我需要保留它,需要的结果:ImageName256.jpg

#!/usr/bin/perl

print "Content-type: text/html\n\n";

use CGI qw(:standard);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);


$Variable = "http://www.MyDomain.com/SomefolderPath/ImageName256.jpg";

($LastInUrl) = $Variable =~ m(.*/(\w+));

print $LastInUrl;
Run Code Online (Sandbox Code Playgroud)

fri*_*edo 6

我通常会避免使用正则表达式来处理这类事情并像这样处理它:

#!/usr/bin/perl

use strict;
use warnings;

use URI;
use URI::Escape qw( uri_unescape );
use File::Basename;

my $variable = "http://www.MyDomain.com/SomefolderPath/ImageName256.jpg";
my $last_in_url = uri_unescape( basename( URI->new( $variable )->path ) );

print $last_in_url;
Run Code Online (Sandbox Code Playgroud)

注意:File :: Basename的行为会根据使用的系统而改变.如果您想要可移植性,则必须使用以下内容:

my $fstype = fileparse_set_fstype('uri');
my $last = uri_unescape( basename( $uri->path ) );
fileparse_set_fstype($fstype);
Run Code Online (Sandbox Code Playgroud)