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

正则表达式匹配时在小数点处截断字符串,如何获取完整结果?

解决正则匹配带小数点数值的问题

嘿,我来帮你搞定这个正则匹配的小问题~

你遇到的核心问题是原正则里的\w不包含小数点:原正则\s?(\w+)=(\w+)?\s?中的\w只能匹配字母、数字和下划线,而小数点.不在它的匹配范围内,所以当匹配到57.800里的.时,匹配就直接停在57,后面的.800就被漏掉了。

调整方案

根据你的需求,有两种常用的调整方式:

1. 简单适配带小数点的数值(适合确定输入格式规范的场景)

把第二个捕获组的\w+替换成[\d.]+,调整后的正则为:

\s?(\w+)=([\d.]+)\s?

这个正则里的[\d.]表示匹配数字(0-9)和小数点,+表示至少出现一次,这样就能完整捕获57.800这类带小数点的数值。

2. 更严谨的小数格式匹配(避免不规范的数值)

如果需要确保匹配的是合法的小数(比如不能有多个小数点、不能只有小数点),可以用更精准的正则:

\s?(\w+)=(\d+(\.\d+)?)\s?
  • \d+:匹配至少一位整数部分
  • (\.\d+)?:可选的小数部分(小数点+至少一位数字),?表示这部分可以不存在(也就是支持整数)

用这个正则测试你的输入Brutto=57.800,同样能完整匹配到Brutto=57.800,还能兼容Brutto=123这类整数场景。

测试验证

把调整后的正则应用到你的输入Brutto=57.800,就能得到你想要的完整匹配结果啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:35:11