perl как убрать последний '_'? - PullRequest
2 голосов
/ 11 октября 2011

В 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 ]

4 голосов
/ 11 октября 2011

Чтобы удалить последний символ подчеркивания, вам просто нужно сделать следующее:

$line =~ s/_$//;
3 голосов
/ 11 октября 2011
$subject =~ s/_(?=[^_]*$)//;

Извините, если кто-то еще опубликовал это:)

2 голосов
/ 11 октября 2011

Чтобы удалить символ подчеркивания: (foo__ & rArr; foo_, foo_bar & rArr; foo_bar)

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

Чтобы удалить все завершающие подчеркивания: (foo__ & rArr; foo, foo_bar & rArr; foo_bar)

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

Чтобы удалить последнее подчеркивание: (foo__ & rArr; foo_, foo_bar & rArr; foobar)

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

$line =~ s/^.*\K_//s;
1 голос
/ 11 октября 2011

Попробуйте это:

$test = "test_";
$test = $1 if($test=~/(.*)_$/);
print $test
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...