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

如何编写Regex匹配以预定义字符开头的数字组中的第二个数值

问题原因分析

你当前使用的正则TOTAL[ ]*([^\s]+)[ ]* 仅会捕获TOTAL前缀后第一个非空白字符序列,所以只能拿到第一个数值600,00,你反馈仅得到600大概率是正则运行环境默认将逗号识别为特殊分隔符导致的截断。

调整后的正则方案

通用场景写法(匹配任意空白分隔的第二个字段)

使用非捕获逻辑跳过第一个字段,直接捕获第二个目标字段:

TOTAL\s+\S+\s+(\S+)

规则说明:

  • TOTAL 精准匹配固定前缀
  • \s+ 匹配前缀后1个及以上的空白字符
  • \S+ 匹配第一个不需要的数值字段(不捕获)
  • \s+ 匹配第一个字段和目标字段之间的空白
  • (\S+) 捕获第二个非空白序列,即你需要的571,43

精确匹配写法(仅匹配数字+逗号格式的字段)

如果你的场景中所有数值都是数字+逗号的格式,可以加规则过滤异常内容:

TOTAL\s+[\d,]+\s+([\d,]+)

该写法会自动跳过非数字、逗号组成的异常字段,适配性更强。

验证结果

在测试字符串TOTAL 600,00 571,43 28,57中运行上述正则,捕获组1的输出结果即为571,43,完全符合需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:27:01