Существует ли регулярное выражение в Perl для нахождения расширения файла?

Существует ли регулярное выражение в Perl для нахождения расширения файла? Например, если я имею"test.exe", как я добрался бы".exe"?

21
задан toolic 18 March 2010 в 02:12
поделиться

4 ответа

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";
42
ответ дан 29 November 2019 в 06:31
поделиться

используйте File :: Basename

  use File::Basename;
  ($name,$path,$suffix) = fileparse("test.exe.bat",qr"\..[^.]*$");
  print $suffix;
12
ответ дан 29 November 2019 в 06:31
поделиться
\.[^\.]*$

Это даст вам все после последней точки (включая саму точку) до конца строки.

4
ответ дан 29 November 2019 в 06:31
поделиться

Вы можете использовать File::Basename для извлечения произвольного расширения файла:

use strict;
use warnings;
use File::Basename;
my $ext = (fileparse("/foo/bar/baz.exe", qr/\.[^.]*/))[2];
print "$ext";
3
ответ дан 29 November 2019 в 06:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: