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

Perl正则如何匹配字符串中最后出现的11位连续数字?

Perl提取字符串最后一个11位连续数字的修改方案

方法1:贪婪匹配(最简实现,仅需最后一个结果时推荐)

利用Perl正则中.*的贪婪特性,优先匹配尽可能长的前缀内容,剩下部分命中的第一个11位数字就是整串最后一个符合要求的结果,代码修改如下:

if ($content =~ /.*([0-9]{11})/) {
    my $digits = $1;
}

以你给出的示例字符串hdjf95724555199361测试,上述代码会正确提取到结果24555199361。

方法2:全局匹配后取末尾元素(需要留存所有匹配结果时推荐)

如果业务需要同时拿到所有命中的11位数字,可以用全局匹配符g把所有结果存入数组,再取数组最后一位即可:

# 提取所有符合要求的11位数字存入数组
my @all_matches = $content =~ /([0-9]{11})/g;
if (@all_matches) {
    # 取数组最后一个元素即为最后出现的11位数字
    my $last_digits = $all_matches[-1];
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:54:00