Существует ли регулярное выражение в Perl для нахождения расширения файла? Например, если я имею"test.exe
", как я добрался бы".exe
"?
my $file = "test.exe";
# Match a dot, followed by any number of non-dots until the
# end of the line.
my ($ext) = $file =~ /(\.[^.]+)$/;
print "$ext\n";
используйте File :: Basename
use File::Basename;
($name,$path,$suffix) = fileparse("test.exe.bat",qr"\..[^.]*$");
print $suffix;
\.[^\.]*$
Это даст вам все после последней точки (включая саму точку) до конца строки.
Вы можете использовать File::Basename для извлечения произвольного расширения файла:
use strict;
use warnings;
use File::Basename;
my $ext = (fileparse("/foo/bar/baz.exe", qr/\.[^.]*/))[2];
print "$ext";