繁体   English   中英

如何从perl中的字符串中删除最后n个数字字符

[英]How to remove last n number of numeric characters from a string in perl

我有一种情况,我需要删除/字符后面的最后n数字字符。

例如:

/iwmout/sourcelayer/iwm_service/iwm_ear_layer/pomoeron.xml@@/main/lsr_int_vnl46a/61

在最后一个/ ,我需要从行中删除数字61,以便输出为,

/iwmout/sourcelayer/iwm_service/iwm_ear_layer/pomoeron.xml@@/main/lsr_int_vnl46a/

我尝试使用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+$//;

\\d+匹配一系列数字, $匹配行尾。 它们被空字符串替换。

@Tim对$str =~ s/\\d+$//的回答是正确的; 但是,如果要删除字符串的最后n位数字符,但不一定要删除所有字符数字字符,则可以执行以下操作:

my $s = "abc123456";
my $n = 3; # Just the last 3 chars.
$s =~ s/\d{$n}$//; # $s == "abc123"
// Code to remove last n number of strings from a string.
// Import common lang jar
import org.apache.commons.lang3.StringUtils;

public class Hello {
    public static void main(String[] args) {
        String str = "Hello World";
        System.out.println(StringUtils.removeEnd(str, "ld"));
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM