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