我输入的字符串必须以三个大写字母开头,以四位数字结尾(如此:“SJL1036”)程序只是检查我的输入是否遵循该模型。
如果我要输入“Sjl1036”og“SJL103”,它会输出它是一个错误的陈述。
答案 0 :(得分:6)
试试这个正则表达式。 3个大写,4个数字。
^[A-Z]{3}[0-9]{4}$
例如:
var value = "FSK2526";
if (Regex.IsMatch(value, @"^[A-Z]{3}[0-9]{4}$")) {
// it matches
}
答案 1 :(得分:4)
如果这是要求:
一个必须以三个大写字母开头并以。结尾的字符串 四位数
最有效的方法可能是使用string method s:
bool valid = input.Length >= 7
&& input.Remove(3).All(Char.IsUpper) // or input.Substring(0, 3)
&& input.Substring(input.Length - 4).All(Char.IsDigit);
如果实际要求为" 3个大写字母后跟4个数字"(所以7个字符),您只需将input.Length >= 7
更改为input.Length == 7
。
答案 2 :(得分:4)
虽然你可以用for循环来做,但你可以用正则表达式进一步简化它:
Regex regex = new Regex(@"^[A-Z]{3}.*[0-9]{4}$");
Match match = regex.Match("SJL1036");
if (match.Success)
{
Console.WriteLine(match.Value);
}
答案 3 :(得分:3)
非正则表达式选项,您可以使用一些LINQ,如:
string str = "SJL1036";
if (str.Length == 7 &&
str.Take(3).All(char.IsUpper)
&& str.Skip(3).All(char.IsDigit))
{
Console.WriteLine("valid");
}
else
{
Console.WriteLine("invalid");
}