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

如何用C#正则表达式从字符串中提取小数数值?

解决提取小数数值的正则问题

你遇到的问题很典型——原来的正则[^0-9]+会把所有非数字字符(包括关键的小数点.)都替换掉,自然就丢失了小数分隔符,导致结果变成了纯数字串。下面给你两种靠谱的解决方案:

方案一:调整替换正则,保留小数点

只需要把正则表达式修改为[^0-9.]+,这样就只会匹配并删除除了数字和小数点之外的所有字符。代码示例:

string input = "Total (pre tax) 93.78 EUR";
string result = Regex.Replace(input, "[^0-9.]+", string.Empty);
// result 就是 "93.78"

方案二:精准匹配小数(更推荐)

如果想更精准地提取符合格式的小数(避免字符串中存在多余小数点时出错),可以直接用Match方法匹配「数字+小数点+数字」的模式:

string input = "Total (pre tax) 93.78 EUR";
Match match = Regex.Match(input, @"\d+\.\d+");
string result = match.Success ? match.Value : string.Empty;
// result 就是 "93.78"

这个正则\d+\.\d+的含义是:

  • \d+:匹配一个或多个数字
  • \.:匹配小数点(需要转义,因为.在正则里是通配符)
  • \d+:匹配小数点后的一个或多个数字

如果你的场景中可能存在整数(比如100 EUR),可以把正则调整为\d+(\.\d+)?,这样既能提取小数,也能提取整数。

内容的提问来源于stack exchange,提问作者Ajinkya Thorat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:23:14