Pra*_*esh 5 regex perl character
我有一种情况,我需要删除一个n字符后的最后一个数字/字符.
例如:
/iwmout/sourcelayer/iwm_service/iwm_ear_layer/pomoeron.xml@@/main/lsr_int_vnl46a/61
Run Code Online (Sandbox Code Playgroud)
在最后一次之后/,我需要从行中删除数字61,以便输出,
/iwmout/sourcelayer/iwm_service/iwm_ear_layer/pomoeron.xml@@/main/lsr_int_vnl46a/
Run Code Online (Sandbox Code Playgroud)
我尝试使用chop,但它只删除了最后一个字符,即.1,在上面的例子中.
上面的最后一部分,即61,可以是任何东西,比如221或2或100.我需要删除后面的最后一个数字字符/.Perl有可能吗?
删除最后一位数的正则表达式替换:
my $str = '/iwmout/sourcelayer/iwm_service/iwm_ear_layer/pomoeron.xml@@/main/lsr_int_vnl46a/61';
$str =~ s/\d+$//;
Run Code Online (Sandbox Code Playgroud)
\d+匹配一系列数字,并$匹配行的结尾.它们被空字符串替换.
@Tim的回答$str =~ s/\d+$//是正确的; 但是,如果要删除字符串的最后n位数字符,但不一定要删除所有字符数字字符,则可以执行以下操作:
my $s = "abc123456";
my $n = 3; # Just the last 3 chars.
$s =~ s/\d{$n}$//; # $s == "abc123"
Run Code Online (Sandbox Code Playgroud)