在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"
怎么做?
答案 0 :(得分:4)
要删除最后一个下划线字符,您只需执行以下操作:
$line =~ s/_$//;
答案 1 :(得分:3)
$subject =~ s/_(?=[^_]*$)//;
很抱歉,如果其他人也发布了这个:)
答案 2 :(得分:2)
删除尾随下划线:(foo__
⇒foo_
,foo_bar
⇒foo_bar
)
$line =~ s/_\z//;
删除所有尾随下划线:(foo__
⇒foo
,foo_bar
⇒foo_bar
)
$line =~ s/_+\z//;
删除最后一个下划线:(foo__
⇒foo_
,foo_bar
⇒foobar
)
$line =~ s/_(?!.*_)//s;
$line =~ s/^.*\K_//s;
答案 3 :(得分:1)
试试这个:
$test = "test_";
$test = $1 if($test=~/(.*)_$/);
print $test