2011-05-30 11 views
4

入力が正確に4つの数字かどうかを確認する正規表現が必要です。 「\ d {4}」(「\ d \ d \ d \ d」も試しました)を使用しています。 5つの数字を入力すると、入力が有効であることも示されます。C#正規表現:{4}以上可能な4つの値

[TestMethod] 
    public void RegexTest() 
    { 
     Regex expr = new Regex("\\d{4}"); 
     String a = "4444", b = "4l44", c = "55555", d = "5 55"; 
     Match mc = expr.Match(a); 
     Assert.IsTrue(mc.Success); 

     mc = expr.Match(b); 
     Assert.IsFalse(mc.Success); 
     ***mc = expr.Match(c); 
     Assert.IsFalse(mc.Success)***; 
     mc = expr.Match(d); 
     Assert.IsFalse(mc.Success); 
    } 

(それが '本当' であるが、偽である必要があり、Cの、他の人が働く)事前に

おかげで、 〜サー・トロール

答えて

6

それはまさに 4でなければならない場合、あなたは$を使用する必要があると^は終わりをマークし、入力を開始するために:私もここに逐語的文字列リテラルを使用してい

Regex expr = new Regex(@"^\d{4}$"); 

注意、ように保存しますすべての正規表現のエスケープ文字をエスケープする必要はありません。 "のみがC#でエスケープする必要があります(""へ)。

1

5桁の文字列にはの4桁が含まれているため、文字列規則の開始と終了も必ず追加する必要があります。

これはあなたの正規表現として動作するはずです:

Regex expr = new Regex(@"^\d{4}$"); 
2

は「55555」は有効である「5555」を、含まれています...だから、文字列はマッチが完了した文字列でなくても、試合が含まれています。ソリューションのMarcの答えを参照

関連する問題