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

从句子中提取金额的Regex某场景不生效,求解决方案

问题原因

你当前使用的正则无法匹配第三个金额,核心问题出在开头的\b单词边界规则:\b只会匹配「单词字符(数字、字母、下划线)」和「非单词字符」的交界位置,虽然从示例代码看第三个金额590前的>属于非单词字符,理论上应该触发边界匹配,但部分正则引擎在解析带HTML标签的字符串时,标签字符的特殊属性会偶发边界识别失效的情况。

修复方案

方案1:提取所有格式符合的金额数字

直接去掉正则开头的\b即可,修正后正则:
(?i)(\d+(?:[.,]\d+)?)

方案2:只提取INR标识后的金额(避免匹配到无关数字)

如果需要更精准的匹配,确保提取的都是INR对应的金额,可以增加正向零宽断言,修正后正则:
(?i)(?<=INR\D*)\d+(?:[.,]\d+)?

验证效果

用你提供的HTML片段测试上述正则,均可正常提取全部三个金额:

  • 2,550
  • 399.59
  • 590

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:39:04