我的字符串是
my $str1 = "/user/admin/music/dangerous-women.1";
(以号码作为扩展名)
my $str2 = "/user/admin/music/dangerous-women";
(没有号码作为扩展名)
my $str3 = "/user/admin/music/dangerous.women.2";
(以号码作为扩展名)
如何使用正则表达式提取dangerous-women
和dangerous.women
即。最后一个斜线和最后一个点之间的任何东西(可选)。 所以扩展只是数字。
答案 0 :(得分:2)
在一场比赛中这很棘手,所以我不会这样做。
my $base = $str =~ s{.*/}{}sr =~ s{\.\d+\z}{}r; # 5.14+
如果要支持早期版本的Perl,可以使用
my $base = $str;
$base =~ s{.*/}{}s;
$base =~ s{\.\d+\z}{};