正则表达式\ d与多个数字匹配

时间:2012-10-17 21:43:34

标签: c# regex

我正在看一个C#Regex教程,该教程声明“\ d”匹配0到9的单个数字。

然而,当我运行以下程序时。

    static void Main(string[] args)
    {
        string s = "45";
        Regex myRegex = new Regex(@"(\d)");

        if( myRegex.IsMatch(s))
        {
            System.Console.WriteLine("Matched");
        }
        else
        {
            System.Console.WriteLine("Not Matched");
        }

        Console.ReadKey();
    }

控制台打印出“匹配”。

2 个答案:

答案 0 :(得分:10)

好吧,它找到4,因为正则表达式匹配不必覆盖整个输入字符串。如果你想确保你的字符串一个数字,包括标记字符串开头和结尾的锚点:

Regex myRegex = new Regex(@"^(\d)$");

现在匹配必须从字符串的开头开始(由^标记)并且必须在字符串的末尾结束(由$标记)。因此,只允许一位数输入。省略此选项允许正则表达式匹配输入的任何子字符串。

答案 1 :(得分:3)

Regex myRegex = new Regex(@"^\d$");