2

これは超基本的な質問です (私は今日脳死状態です):

正規表現を使用して入力を検証する方法: 1) 入力が特定の形式であるかどうか 2) 入力がすべて大文字であるかどうか (入力を大文字にキャストするだけでは実現できません)

入力が XX_XX の形式であることを確認したくありません。ここに私が持っているものがあります:

public bool IsKosher(string input)
{
    Regex r = new Regex(input);
    if(r.Matches([A-Z]_[A-Z]))
    {
        return true;
    }
    return false;     
}

コンパイルされない理由はありますか?

ありがとうございました!

4

4 に答える 4

5

二重引用符が欠落していて、パラメーターを間違った場所に配置していて、ifステートメントは必要ありません。

public bool IsKosher(string input) {
    return Regex.IsMatch(input, "[A-Z]{2}_[A-Z]{2}");
}
于 2012-05-22T19:57:28.670 に答える
3

引用?閉じ括弧がありませんか? ブール値を返さない一致? 文字列パラメーターを交換しますか? すべてがコードをコンパイルしない原因になります。

「XX_XX」の場合はこれが必要かもしれませんが:

var r = new Regex("[A-Z]{2}_[A-Z]{2}");
return r.IsMatch(input);
于 2012-05-22T19:54:53.983 に答える
2

次のように引用符の間に [AZ]_[AZ] を入れる必要があります。

if(r.Matches("[A-Z]_[A-Z]")
于 2012-05-22T19:55:59.547 に答える
2
  1. 引用。
  2. の両側にある 2 つの文字_
  3. Regexコンストラクターはパターンを取ります。Matchesメソッドは検索する文字列を受け取ります。
  4. Matchesメソッドは を返しますMatchCollectionIsMatchブール値を返します。

そのようです:

if (Regex.IsMatch(input, "[A-Z]{2}_[A-Z]{2}")
于 2012-05-22T19:56:11.030 に答える