C#中正则表达式匹配整数与小数
在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#数据处理与正则用法资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













