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

求可提取数字小数点后无意义末尾0的正则表达式

解决方案:提取小数点后无意义的末尾0

正确正则表达式组合

可以用两个正则分别对应两种场景,也可合并为一个统一表达式:

(\.(0+)$)|(?<=\.\d*[1-9])0+$

正则拆解说明

  • \.(0+)$:专门匹配小数点后全为0的结尾部分,对应1.000、0.000这类场景,会提取出.000这类完整的小数部分
  • (?<=\.\d*[1-9])0+$:通过正向预查(?<=\.\d*[1-9])确保匹配位置在小数点后且存在至少一个非0数字,随后匹配末尾所有连续的0,对应0.0080这类场景,提取出末尾的0

示例验证

  • 输入1.000 → 匹配\.(0+)$,提取结果:.000
  • 输入0.000 → 匹配\.(0+)$,提取结果:.000
  • 输入0.0080 → 匹配(?<=\.\d*[1-9])0+$,提取结果:0
  • 输入10/100 → 无匹配结果,提取空内容,符合要求

原正则问题说明

你之前使用的(\.*?)(0+)$存在的问题是:\.*?会匹配空字符串,导致整数末尾的0被0+$匹配到,误提取了整数中具有实际意义的末尾0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 19:22:11