Пример:
Раньше я использовал regex, чтобы получить расширение от имени файла:
my $name = "file.zip";
my ($fname, $fext) = $name =~ /(.*)\.(.*)/;
# file
# zip
Теперь мне нужно убедиться, что он также правильно перехватывает .tar.gz
файлы,если имя включает его, в противном случае возвращается к примеру выше.Я сделал следующее:
my $name = "file.tar.gz";
my ($fname, $fext) = $name =~ /(.*)\.(tar\.gz$)|(.*)\.(.*)/;
# file
# tar.gz
Проблема:
Проблема в том, что теперь он работает только для file.tar.gz
и не отступает от перехвата обычных файлов, таких как file.zip
,и возвращает пустой, во втором случае.
Как мне сделать это в одном регулярном выражении, чтобы он успешно работал для file.tar.gz
и file.zip
.Что мне не хватает?