正则表达式不起作用(无法将字符串转换为 int (Regex.IsMatch)
本文关键字:int Regex IsMatch 转换 字符串 不起作用 正则表达式 | 更新日期: 2023-09-27 17:56:04
我知道
有一个非常简单的答案。但我无法理解它。它是一个控制台应用程序,您输入一个单词"密码",它会告诉我它是否与我的正则表达式匹配,因为您可以正确收集。
基本上我想知道为什么这不起作用:
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 有关。
因为您使用的是静态方法isMatch
并且正在提供一个正则表达式对象,它需要正则表达式作为字符串,请参阅 Regex 类。
此外,您不需要 .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();
}
Regex regularExpression = new Regex("/^[a-z0-9_-]{3,16}$/");
/
符号,请将它们替换为字符串空 => @"^[a-z0-9_-]{3,16}$"