0

xy1234xy のように、2 つの文字の後に 4 つの数字が続き、その後に 2 つの文字が続く次の文字列文字があります。ユーザーエントリがこの基準を満たしているかどうかを判断できる必要があります。

他のプロジェクトでは、代替手段がある場合は Regix を使用したくないためTake、を使用しました。Skip

私は過去にこのようなものを使用しましたが、中間セクションに問題があります:

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 でライブ編集

ここにデモがあります。

于 2013-09-12T19:23:40.140 に答える
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 クエリのセットで行うことができますが、私の意見では、これが最も単純で簡単なオプションです。

于 2013-09-12T19:37:34.860 に答える