perl如何删除最后的'_'?

时间:2011-10-11 13:43:45

标签: regex perl

在perl中,如何编写这个正则表达式?

my $line = "job_name_1_" ; #end with '_'

$pattern = "_$"; # tried "\_$", still doesn't work

if($line =~ m/$pattern/){
    # remove last "_" ?
}

-#output should be "job_name"

怎么做?

4 个答案:

答案 0 :(得分:4)

要删除最后一个下划线字符,您只需执行以下操作:

$line =~ s/_$//;

答案 1 :(得分:3)

$subject =~ s/_(?=[^_]*$)//;

很抱歉,如果其他人也发布了这个:)

答案 2 :(得分:2)

删除尾随下划线:(foo__foo_foo_barfoo_bar

$line =~ s/_\z//;

删除所有尾随下划线:(foo__foofoo_barfoo_bar

$line =~ s/_+\z//;

删除最后一个下划线:(foo__foo_foo_barfoobar

$line =~ s/_(?!.*_)//s;

$line =~ s/^.*\K_//s;

答案 3 :(得分:1)

试试这个:

$test = "test_";
$test = $1 if($test=~/(.*)_$/);
print $test