C#中正则表达式匹配整数与小数

Owen
Owen
发布时间:2026-10-15 | 5人浏览过
原创

在C#编程中验证数据格式时,经常需要区分整数与小数。本文将介绍利用正则表达式(Regular Expression)同时处理这两种情况的精确方法,并提供可直接运行的匹配代码。

准备环境与基础

在 .NET 环境中进行字符串格式校验,核心依赖 System.Text.RegularExpressions 命名空间下的 Regex 类。该类的核心方法是 IsMatch(string input),它接收一个要匹配的字符串,若符合预设规则则返回 true,否则返回 false。

匹配整数的正则规则

如果目标是匹配只包含数字的整数(不允许负号、前导零或字母),可以使用以下正则表达式:

^([0-9]{1,})$

规则解析:

  • ^:匹配字符串起始位置。
  • ([0-9]{1,}):捕获一组数字字符(0到9),{1,} 表示至少出现一次且无上限,确保至少有一个数字存在。
  • $:匹配字符串结束位置,防止后面跟上其他字符。

匹配小数的正则规则

当需要匹配带有小数点的数值(例如 3.14 或 5.0)时,可使用如下表达式:

^([0-9]{1,}[.][0-9]*)$

规则解析:

  • ^ 与 $:依然锁定首尾,确保整个字符串完全由数字和小数点组成。
  • [0-9]{1,}:匹配整数部分,要求至少有一位数字。
  • [.]:匹配字面量的小数点符号(点号在正则中是特殊字符,使用方括号转义以确保准确性)。
  • [0-9]*:匹配小数点后的部分,* 表示可以有零个或多个数字,这允许了像 "3." 这样的形式;若需强制小数后必须有数字,可改为 +{1,} 或 [0-9]{1,}。

C#中的实际调用示例

下面是一个完整的调用演示,展示了如何将待检查的变量传入 Regex.IsMatch:

using System;
using System.Text.RegularExpressions;

class Program {
    static void Main() {
        string userInput = "123.45"; // 假设这是用户输入的字符串

        // 匹配整数逻辑
        bool isInteger = Regex.IsMatch(userInput, @"^([0-9]{1,})$");

        // 匹配小数逻辑
        bool isDecimal = Regex.IsMatch(userInput, @"^([0-9]{1,}[.][0-9]*)$");

        Console.WriteLine($"是否为整数: {isInteger}");
        Console.WriteLine($"是否为小数: {isDecimal}");
    }
}

在此例中,针对 userInput 的值,两个属性都会返回 false(因为它既不是纯粹的整数,也不满足简单的单小数点匹配)。若将变量更改为纯数字如 "42",isInteger 将变为 true;若为 "42.0",isDecimal 将变为 true。

以上就是C#使用正则表达式匹配整数与小数的详细内容,更多关于C#数据处理与正则用法资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表