私の要件は、入力した数字の最初の 2 桁が 00-32 の範囲であるということです。C# で正規表現を使用してこれを確認するにはどうすればよいですか? 私はそれを理解できませんでした!!`
質問する
80 次
5 に答える
4
本当に正規表現が必要ですか?
int val;
if (Int32.TryParse("00ABFSSDF".Substring(0, 2), out val))
{
if (val >= 0 && val <= 32)
{
// valid
}
}
于 2013-10-21T10:13:28.983 に答える
4
これはほぼ間違いなく学習演習であるため、いくつかのヒントを次に示します。
|
あなたの rexex は、最初の 2 文字を検証する 2 つの部分の「OR」になります。- 最初の文字が 0..2 の数字で、2 番目の文字が数字 0..9 の場合、最初の表現部分が一致します。
3
最初の文字が digitで、2 番目の文字が数字の場合、2 番目の表現部分が一致します。0..2
数字の範囲を一致させるには、range を使用し[A-B]
ます。ここで、A
は一致する数字の下限とB
上限です (両方の境界が含まれます)。
于 2013-10-21T10:16:40.103 に答える
1
次のようなものを試してください
Regex reg = new Regex(@"^([0-2]?[0-9]|3[0-2])$");
Console.WriteLine(reg.IsMatch("00"));
Console.WriteLine(reg.IsMatch("22"));
Console.WriteLine(reg.IsMatch("33"));
Console.WriteLine(reg.IsMatch("42"));
は[0-2]?[0-9]
0 ~ 29 のすべての数字に一致し、 は30 ~ 32 に3[0-2]
一致します。
これにより、0 から 32 までの数値が検証され、08 などの先行ゼロの数値も許可されます。
于 2013-10-21T10:20:03.030 に答える
1
次のように領域を分割する必要があります。
^[012]\d|3[012]
于 2013-10-21T10:22:00.113 に答える
0
if(Regex.IsMatch("123456789","^([0-2][0-9]|3[0-2])"))
// match
于 2013-10-21T10:33:17.553 に答える