是否有正则表达式来删除Perl中的尾部斜杠?

Zer*_*obu 9 regex perl

我想从字符串中删除尾部斜杠.例如,如果我有一个名为$ test ="test /"的字符串.我怎么能在最后删除斜线?

mio*_*rel 12

用正则表达式做: $test =~ s/\/$//

或者,如果你确定最后一个字符是斜线,你可以使用chop函数:chop $test

  • 为了便于阅读,我写了'$ test =〜s [/ $] []`. (3认同)

cod*_*ict 8

如果你确定最后有一个/最后你可以使用chop功能:

$test = "test/";
$test = chop($test);
Run Code Online (Sandbox Code Playgroud)

如果你不确定你能做到:

$test = "test/";
$test = $1 if($test=~/(.*)\/$/);
Run Code Online (Sandbox Code Playgroud)

  • 哇,这两个例子都错了.您必须测试以查看最后一个字符是/如果您使用chop,并且$ anchor允许在最后一个字符后面换行.而不是匹配,只需使用替换:`s | /\z ||;` (2认同)

Eug*_*ash 8

您可以使用s///替换运算符:

$test =~ s{/\z}{};
Run Code Online (Sandbox Code Playgroud)


jus*_*ime 8

就个人而言,我会改写这个以避免"\"和"/"的混合

$test =~ s|/$||
Run Code Online (Sandbox Code Playgroud)

如果你使用"|" 你不需要引用"/"