You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Perl中获取字符串中最后一个数字的索引?

在Perl中查找字符串最后一个数字的索引

这里提供两种实用的实现方式,以示例字符串Hello123xyz为例,最后一个数字的索引为7(索引从0开始计数):

方法一:正则表达式匹配

利用正则匹配最后一个数字,结合Perl的特殊变量计算索引:

my $str = 'Hello123xyz';
if ($str =~ /(\d)(?!.*\d)/) {
    # $` 是匹配结果之前的子串,$1是捕获到的最后一个数字
    my $last_digit_idx = length($`) + length($1) - 1;
    print $last_digit_idx; # 输出7
}

解释:(\d)(?!.*\d)的作用是匹配后面不再有数字的单个数字,也就是字符串中最后出现的数字。通过计算匹配前子串的长度,加上数字本身的长度(这里是1)再减1,得到该数字的起始索引。

方法二:反向遍历字符串

从字符串末尾开始逐个检查字符,找到第一个数字的位置即为目标索引:

my $str = 'Hello123xyz';
my $last_idx = -1;
# 从最后一个字符的索引开始反向遍历
for (my $i = length($str) - 1; $i >= 0; $i--) {
    if (substr($str, $i, 1) =~ /\d/) {
        $last_idx = $i;
        last; # 找到后立即退出循环
    }
}
print $last_idx; # 输出7

解释:这种方法逻辑直观,适合需要精细控制遍历过程的场景,若字符串中没有数字,$last_idx会保持-1,可以根据需求添加判断逻辑。


内容的提问来源于stack exchange,提问作者MJustAsking

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 01:15:30