0

これには本当に簡単な答えがあります。しかし、私はそれを理解することはできません。「パスワード」という単語を入力すると、それが私の正規表現に一致するかどうかを教えてくれるコンソール アプリケーションです。適切に収集できます。

基本的に、これが機能しない理由を知りたい:

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に変換できないことに関係していると確信しています。

4

2 に答える 2

2

静的メソッドを使用し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(); 
}
于 2013-01-25T12:17:51.190 に答える
0
Regex regularExpression = new Regex("/^[a-z0-9_-]{3,16}$/");

/はシンボルです。それらを空の文字列に置き換えます =>@"^[a-z0-9_-]{3,16}$"

于 2013-01-25T12:17:50.290 に答える