我有一个字符串:
$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之前的所有内容怎么办?这是我想要摆脱的唯一常量(以及路径的另一部分)。谢谢 -
答案 0 :(得分:15)
这很简单,便携:
use File::Basename qw( basename );
my ($word) = basename($path) =~ /^([^_]+)/;
答案 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]";