Skip to main content
 首页 » 编程设计

c#之正则表达式\d 匹配多个数字

2024年01月13日42bluestorm

我在看 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(); 
    } 

控制台打印出“匹配”。

请您参考如下方法:

是的,它找到了 4,因为正则表达式匹配不必覆盖完整的输入字符串。如果您想确保您的字符串只是一个数字,请包含标记字符串开头和结尾的 anchor :

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

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