我有以下字符串字符,由两个字母后跟四个数字组成,后跟两个字母,例如xy1234xy。我需要能够确定用户条目是否符合此条件。
对于其他项目,我使用Take
,Skip
,因为如果有替代方案,我宁愿不使用Regix:
我过去曾经使用过这样的东西,但是中段有问题:
public static void MemberNumberInput(string checkNumberLetter)
{
IsValidInput = (checkNumberLetter.Take(2).All(char.IsLetter) &
(checkNumberLetter.Skip(2).All(char.IsDigit) &
(checkNumberLetter.Take(2).All(char.IsLetter) &
(checkNumberLetter.Trim().Length == 8))));
}
}
谢谢大家:
盖
答案 0 :(得分:5)
这样怎么样?
string myString = "xy1234xy";
if(Regex.IsMatch(myString, "^[A-Za-z]{2}[0-9]{4}[A-Za-z]{2}$"))
{
// Do something
}
^[A-Za-z]{2}[0-9]{4}[A-Za-z]{2}$
这是DEMO。
答案 1 :(得分:1)
如果绝对不能使用正则表达式,我认为最直接的方法是逐个检查:
return checkNumberLetter.Length == 8 &&
checkNumberLetter[0].IsLetter() &&
checkNumberLetter[1].IsLetter() &&
checkNumberLetter[2].IsDigit() &&
checkNumberLetter[3].IsDigit() &&
checkNumberLetter[4].IsDigit() &&
checkNumberLetter[5].IsDigit() &&
checkNumberLetter[6].IsLetter() &&
checkNumberLetter[7].IsLetter();
您可以在for循环或一组LINQ查询中执行此操作,但我认为这是最简单,最直接的选项。