在C#的程序开发过程中,有些时候需要校验输入的字符串是否为非0的负整数。此文将介绍如何使用正则表达式校验输入的文本是否为非0的负整数,程序中调用匹配的方法主要是C#类库中的Regex类的IsMatch方法,IsMatch方法是正则表达式校验的常用方法,其签名为bool IsMatch(string input, string pattern),参数input表示输入的校验参数值,pattern表示正则表达式语句。

Regex正则表达式类所在的命名空间为System.Text.RegularExpressions,因此使用之前需要先引入此命名空间。

针对校验输入字符是否为非0的负整数,封装一个方法如下:

 public bool IsFuZhengShu(string strValue)
        {
            bool result = Regex.IsMatch(strValue, @"^-[1-9][0-9]*$");
            return result;
        }

在上述封装的方法中,正则表达式中符号-表示匹配一个负号,[1-9]表示第一位匹配1到9数字,[0-9]表示匹配0到9的数字,星号*表示匹配0个到多个数字,$表示结束。

下面以实例代码的方式验证上面的方法:

       bool result1 = IsFuZhengShu("acbS");
            bool result2 = IsFuZhengShu("张三");
            bool result3 = IsFuZhengShu("1234");
            bool result4 = IsFuZhengShu("-1a34");
            bool result5 = IsFuZhengShu("-134");

上述实例运行结果只有result5为true,其他全部为false。