如何使用regex从给定有序列表片段中提取对应的金额数值
正则提取金额方案
方案1:通用捕获组方案(兼容所有正则引擎)
正则表达式:Amount\s+:\s+#([\d,]+)#
使用说明:
- 该方案适配所有主流正则引擎,不需要零宽断言支持
- 匹配完成后直接取第一个捕获组的内容,就能得到纯金额数值
- 表达式里的
\s+可以匹配任意数量的空白字符,适配Amount和冒号之间、冒号和#之间空格数量不固定的场景,兼容性更强
方案2:零宽断言方案(可直接返回纯金额)
如果你的运行环境支持零宽断言(Python、Java、.NET、ES2018及以上版本的JavaScript等均支持),可以使用如下表达式,匹配到的结果直接就是目标金额,不需要额外处理捕获组:
正则表达式:(?<=Amount\s+:\s+#)[\d,]+(?=#)
匹配效果说明
针对你提供的样例内容,两个方案都可以正确提取到两个目标金额:
4,227,361,94227,361,94
扩展适配规则
如果后续金额规则调整,新增了小数点支持,只需把表达式中匹配金额的部分从[\d,]+调整为[\d,.]+即可。
内容的提问来源于stack exchange,提问作者dkf
相关产品推荐
相关产品推荐

