正则表达式不起作用(无法将字符串转换为 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 有关。

正则表达式不起作用(无法将字符串转换为 int (Regex.IsMatch)

因为您使用的是静态方法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}$"