Perl:提取最后一个斜杠和最后一个点之间的字符串(可选)

时间:2017-09-19 23:15:16

标签: regex perl

我的字符串是

my $str1 = "/user/admin/music/dangerous-women.1";(以号码作为扩展名)

my $str2 = "/user/admin/music/dangerous-women";(没有号码作为扩展名)

my $str3 = "/user/admin/music/dangerous.women.2";(以号码作为扩展名)

如何使用正则表达式提取dangerous-womendangerous.women

即。最后一个斜线和最后一个点之间的任何东西(可选)。 所以扩展只是数字。

1 个答案:

答案 0 :(得分:2)

在一场比赛中这很棘手,所以我不会这样做。

my $base = $str =~ s{.*/}{}sr =~ s{\.\d+\z}{}r;   # 5.14+

如果要支持早期版本的Perl,可以使用

my $base = $str;
$base =~ s{.*/}{}s;
$base =~ s{\.\d+\z}{};