使用正则表达式验证C#中的输入格式

时间:2012-05-22 19:53:40

标签: c# regex formatting

这是一个超级基本问题(我今天脑子里死了):

如何使用正则表达式验证输入,以查看: 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 个答案:

答案 0 :(得分:5)

您缺少双引号,将参数放在错误的位置,并且您不需要if语句:

public bool IsKosher(string input) {
    return Regex.IsMatch(input, "[A-Z]{2}_[A-Z]{2}");
}

答案 1 :(得分:3)

行情?缺少右括号?匹配没有返回布尔值?交换字符串参数?所有这些都会导致您的代码无法编译。

如果是“XX_XX”,你可能想要这个:

var r = new Regex("[A-Z]{2}_[A-Z]{2}");
return r.IsMatch(input);

答案 2 :(得分:2)

你必须把[A-Z] _ [A-Z]放在这样的引号之间:

if(r.Matches("[A-Z]_[A-Z]")

答案 3 :(得分:2)

  1. 行情。
  2. _两侧的两个字符。
  3. Regex构造函数采用该模式; Matches方法接受字符串搜索。
  4. Matches方法返回MatchCollectionIsMatch返回一个布尔值。
  5. 像这样:

    if (Regex.IsMatch(input, "[A-Z]{2}_[A-Z]{2}")