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

如何使用Regex从短信中提取余额、可用额度等金额信息

短信余额类金额提取正则调整方案

你原有正则的核心问题是匹配规则[A-Za-z0-9]+无法覆盖金额中包含的千位分隔符逗号、小数点,也没有处理关键词和金额之间的非数字衔接内容,调整方案如下:

合并提取所有余额/额度的正则

如果需要同时匹配账户余额、信用卡余额、可用信用额度三类金额,可以直接使用合并规则:

(?i)(?:balance|credit\s+limit)\D*?(Rs\.?\s*[\d,]+\.?\d*)

规则说明:

  • (?i):开启不区分大小写匹配,兼容短信里大小写混用的关键词写法
  • (?:balance|credit\s+limit):非捕获组,匹配「余额」「信用额度」两类目标关键词
  • \D*?:非贪婪匹配所有非数字字符,跳过关键词和金额之间的其他衔接文字
  • 捕获组内的规则适配印度卢比金额格式:匹配Rs/Rs.前缀,可兼容前缀后带空格的情况,同时支持金额的千位逗号、小数点格式

分开匹配的正则(和你原有写法逻辑对齐)

  • 提取各类余额:(?i)\sbalance\D*?(Rs\.?\s*[\d,]+\.?\d*)
  • 提取信用额度:(?i)\scredit\s+limit\D*?(Rs\.?\s*[\d,]+\.?\d*)

提取效果

用你提供的3条短信测试,可准确捕获到所有目标金额:

  • Rs. 13086.18
  • Rs.78,468
  • Rs. 173281.31

如果只需要提取纯数字金额不需要Rs前缀,将捕获组的位置调整到Rs前缀之后即可:

(?i)(?:balance|credit\s+limit)\D*?Rs\.?\s*([\d,]+\.?\d*)

调整后捕获结果为纯数字:13086.18、78,468、173281.31

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:54:06