对此有一个非常简单的答案,我知道有。但我无法理解它。 它是一个控制台应用程序,你输入一个单词“password”,它会告诉我它是否与我的正则表达式匹配,因为你可以正确地收集。
基本上我想知道为什么这不起作用:
static void Main(string[] args)
{
Regex regularExpression = new Regex("/^[a-z0-9_-]{3,16}$/");
Console.Write("Enter password: ");
string password = Console.ReadLine();
if (Regex.IsMatch(password, regularExpression))
Console.WriteLine("Input matches regular expression");
else
Console.WriteLine("Input DOES NOT match regular expression");
Console.ReadKey();
}
我确定这与Regex.IsMatch
方法无法将字符串转换为int有关。
答案 0 :(得分:2)
因为您正在使用静态方法isMatch
并且正在提供正则表达式对象,它希望将正则表达式作为字符串,请参阅Regex class。
此外,您不需要.net中的正则表达式分隔符。
使用此:
static void Main(string[] args) {
Regex regularExpression = new Regex(@"^[a-z0-9_-]{3,16}$");
Console.Write("Enter password: ");
string password = Console.ReadLine();
if (regularExpression.IsMatch(password))
Console.WriteLine("Input matches regular expression");
else
Console.WriteLine("Input DOES NOT match regular expression");
Console.ReadKey();
}
答案 1 :(得分:0)
Regex regularExpression = new Regex("/^[a-z0-9_-]{3,16}$/");
/
是符号,将其替换为字符串empty => @"^[a-z0-9_-]{3,16}$"