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

如何用正则表达式提取行末最后一个0之后的数字?

正则提取每行末尾最后一个0后的数字

输入内容

DEFE0000458
sdqsd000254
qdqsdq012525
qsdqs000125
012254104564
00012540001
00026a000a0

需求

提取每行末尾最后一个0之后的连续数字,预期结果如下:

458
254
12525
125
4564
1
no match

你当前使用的(\d+[^0])$逻辑存在问题:它要求末尾是非0字符加数字,既没法处理末尾只有单个数字的情况(比如第六行的1),也没考虑目标数字前的连续0序列,所以无法满足需求。

正确正则表达式

使用正则:0*(\d+)$

逻辑解释

  • 0*:匹配目标数字之前的所有末尾连续0(可以是0个,比如第五行里最后一个0直接衔接数字的情况)
  • (\d+)$:捕获行末尾的连续数字,这部分就是最后一个0之后的目标内容

匹配验证

对应每行的结果:

  • DEFE0000458 → 捕获458(目标数字前有4个0)
  • sdqsd000254 → 捕获254(目标数字前有3个0)
  • qdqsdq012525 → 捕获12525(目标数字前有1个0)
  • qsdqs000125 → 捕获125(目标数字前有3个0)
  • 012254104564 → 捕获4564(目标数字前有1个0)
  • 00012540001 → 捕获1(目标数字前有3个0)
  • 00026a000a0 → 末尾最后一个字符是0,但后续无数字,且前置字符为字母,无法匹配有效数字,返回no match

如果需要严格确保目标数字前存在至少一个0(比如排除行开头就是无0数字的情况),可以调整为.*0(\d+)$,但你的输入场景下0*(\d+)$已足够简洁覆盖所有需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:55:36