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

C#正则表达式重复组捕获浮点数值时如何忽略前置空格?

解决方案

方案1:修改正则结构(推荐)

问题根源是当前正则的捕获组包含了数值前的空格,调整分组逻辑,仅捕获数值部分即可,其余代码无需变动:

var regex = new Regex(@"^\s*v(?:\s+([-+]?\b\d*\.?\d+\b))+$", options);

调整说明:

  • 原来的((?:\s+)[数值匹配])结构是把空格+数值整体捕获,修改为(?:\s+([数值匹配])),把空格匹配放在非捕获分组内,仅把数值部分划入捕获组
  • 原有遍历match.Groups[1].Captures的逻辑完全兼容,不需要额外修改

修改后输出结果符合预期:

'+0.5'
'+0.5'
'+0.5'
'0.0'
'1.0'
'1.0'
...

方案2:不修改正则,捕获后去除空格

如果不想调整正则表达式,也可以在输出时对捕获结果做Trim处理:

Console.WriteLine($"'{capture.Value.Trim()}'");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:54:06