0

我有以下字符串字符,由两个字母后跟四个数字,后跟两个字母组成,例如 xy1234xy。我需要能够确定用户条目是否符合此条件。

对于其他项目,我使用了TakeSkip因为如果有替代方案,我宁愿不使用 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))));
}
}

谢谢大家:

盖伊

4

2 回答 2

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}$

正则表达式可视化

在 Debuggex 上实时编辑

这里有一个DEMO

于 2013-09-12T19:23:40.140 回答
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 查询中执行此操作,但我认为这是最简单和最直接的选项。

于 2013-09-12T19:37:34.860 回答