You need to enable JavaScript to run this app. 如何修改C#正则忽略数字间空格,正确提取Top Rate后的整数?
优惠活动
大模型
产品
解决方案
定价
更多

如何修改C#正则忽略数字间空格,正确提取Top Rate后的整数?

修复方案

原有正则的捕获组[\d,\.]+仅匹配连续的数字、逗号、小数点组合,一旦遇到空白就会停止捕获,所以只能拿到首个数字。按以下两步修改即可覆盖你列出的所有场景:

1. 调整正则匹配规则

调整捕获组规则,将数字、逗号、小数点以及中间夹杂的任意空白都纳入匹配范围:

var topRateMatch = Regex.Match(result, @"\bTop Rate\b.*?([\d\s,\.]+)", RegexOptions.IgnoreCase);

2. 转换前清理所有空白字符

拿到匹配结果后,先移除所有空白字符再做int转换:

// 基础方案:移除空格、制表符类常见空白
string cleanedValue = topRateMatch.Groups[1].Value.Replace(" ", "").Replace("\t", "");
// 通用兼容方案:如果需要兼容换行等其他类型空白,可改用正则替换所有空白
// string cleanedValue = Regex.Replace(topRateMatch.Groups[1].Value, @"\s+", "");

// 按原有规则转int
topRate = int.Parse(cleanedValue, System.Globalization.NumberStyles.AllowThousands);

修改后你给出的所有测试场景都可以正确输出888888。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 22:24:03