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

C#如何编写正确的正则匹配查询以同时匹配整数和浮点数

问题修正方案

你当前的正则存在两个明显问题:

  • 规则强制要求必须出现小数点+小数点后数字,无小数点的整数无法被匹配
  • 片段\.+代表匹配1个及以上连续小数点,会错误命中12..3这类不符合数字规范的非法内容

可用正则片段

将原有捕获组替换为以下内容,即可同时覆盖整数、标准格式浮点数的匹配需求:

([0-9]+(?:\.[0-9]+)?)

规则逻辑

  • [0-9]+:匹配至少1位整数部分,纯整数场景下仅靠这部分即可完成匹配
  • (?:\.[0-9]+)?:用非捕获组包裹小数段,末尾的?标识整个小数段为可选匹配项;其中\.固定匹配单个小数点,[0-9]+匹配小数点后至少1位数字,仅当数字存在小数部分时才会触发这部分匹配
  • 匹配效果验证:
    • 整数12可正常命中,捕获值为12
    • 浮点数12.5可正常命中,捕获值为12.5
    • 多小数点的非法内容12..3不会被误匹配

修正后的完整C#代码

String RateBuy7 = Regex.Match(Response, @"</a></td><td>([0-9]+(?:\.[0-9]+)?)</td><td>").Groups[1].Value;

扩展提示:如果后续需要兼容带负号的数字,只需在捕获组开头添加-?即可,对应写法为(-?[0-9]+(?:\.[0-9]+)?)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:48:19