Reputation: 467
My strings are
my $str1 = "/user/admin/music/dangerous-women.1";
(with number as extension)
my $str2 = "/user/admin/music/dangerous-women";
(without number as extension)
my $str3 = "/user/admin/music/dangerous.women.2";
(with number as extension)
How can I use regular expression to extract dangerous-women
and dangerous.women
i.e. Anything between the last slash and last dot (optional). So the extension is only number.
Upvotes: 0
Views: 294
Reputation: 385897
It's tricky do in a single match, so I wouldn't do it that way.
my $base = $str =~ s{.*/}{}sr =~ s{\.\d+\z}{}r; # 5.14+
If you want to support earlier versions of Perl, you can use
my $base = $str;
$base =~ s{.*/}{}s;
$base =~ s{\.\d+\z}{};
Upvotes: 2