这是一个超级基本问题(我今天脑子里死了):
如何使用正则表达式验证输入,以查看: 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;
}
为什么它没有编译的任何想法?
谢谢!
答案 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)
_
两侧的两个字符。Regex
构造函数采用该模式; Matches
方法接受字符串搜索。Matches
方法返回MatchCollection
。 IsMatch
返回一个布尔值。像这样:
if (Regex.IsMatch(input, "[A-Z]{2}_[A-Z]{2}")