缩短Perl中的字符串? (简单)

时间:2011-03-14 19:15:17

标签: perl string

我有一个字符串:

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

如何让Perl只打印字符串的TEST1部分?

ADDITION 3/15/11 -

如果不是TEST1_HHH.123,那么文件名如果是TEST1_2_HHH.123并且我想要_HHH.123之前的所有内容怎么办?这是我想要摆脱的唯一常量(以及路径的另一部分)。谢谢 -

3 个答案:

答案 0 :(得分:15)

这很简单,便携:

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

File::Basename

答案 1 :(得分:0)

if ( $path =~ /.*\/(([^\/]*)_([^\/]*))$/ )
{ 
  my $file = $1; # TEST1_HHH.123
  my $name = $2; # TEST1
  my $suff = $3; # HHH.123
}

答案 2 :(得分:-1)

#!/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]";