Сократить строку в Perl? (просто) - PullRequest
1 голос
/ 14 марта 2011

У меня есть строка:

$path = "C:/Users/user1/tools/test_folder/TEST1_HHH.123"

Как заставить Perl печатать только TEST1 часть строки?

ДОПОЛНЕНИЕ 3/15/11 -

Что если вместо TEST1_HHH.123 указать имя файла, если TEST1_2_HHH.123 и я хочу все до _HHH.123? Это единственная константа, от которой я хочу избавиться (и другая часть пути). Спасибо -

Ответы [ 3 ]

15 голосов
/ 14 марта 2011

Это просто и переносимо:

use File::Basename qw( basename );
my ($word) = basename($path) =~ /^([^_]+)/;

Файл :: Базовое имя

0 голосов
/ 15 марта 2011
if ( $path =~ /.*\/(([^\/]*)_([^\/]*))$/ )
{ 
  my $file = $1; # TEST1_HHH.123
  my $name = $2; # TEST1
  my $suff = $3; # HHH.123
}
0 голосов
/ 14 марта 2011
#!/usr/bin/perl
my @test='';
my $test1='';
my $path = "C:/Users/user1/tools/test_folder/TEST1_HHH.123";
@test = split('/',$path);
print "@test\n";
my $test1 ="$test[$#test]";
@res = split('_',$test1);
print "$res[0]";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...