6

この正規表現を変更して、1以上または10以下の数値を取得しようとしています。この正規表現では、>=0または<=10が許可されます。

0以上11未満の数値をとるフォームにテキストフィールドがあります。IFと論理演算子TryParseを使用できますが、正規表現が好きです。

@"^\d$|^[1][0]$"
4

7 に答える 7

11

正規表現を少しだけ変更する必要があります

@"^[1-9]$|^10$"

単一の文字を角かっこで囲む必要はありません。交互にグループを使用して、次のように変更します。

@"^([1-9]|10)$"

ここRegexrでそれを参照してください

于 2012-11-22T08:16:45.460 に答える
5

答えは、これは正規表現を使用する必要があるものではないということです。if (num >= 0)どちらかといえば、正規表現を使用して数値を解析し、標準などと比較します。

// EDIT: replaced regex with this:
int number;
if (Int32.TryParse(myString, out number)) {
    // do something, like:
    if (number >= 0 || number <= 10) {

    }
}
于 2012-11-22T08:15:44.673 に答える
4

WinFormsを使用している場合は、10以上のNumericUpDownコントロールで機能します。また、解析する必要はありません-プロパティには値が含まれます(まあ、それはタイプになります-ちょうどそれをにキャストします)。MinValue1MaxValueValuedecimalint

使用するもう1つの理由NumericUpDown-数字以外は入力できず、上下の矢印がユーザーに言っています-このコントロールはあなたからの数字を待っています。

于 2012-11-22T08:27:02.183 に答える
3

論理演算子を使用してintが1から10の間であるかどうかを確認することをお勧めしますが、有効な正規表現は次のとおりです。

^(10|[1-9])$
于 2012-11-22T08:17:26.517 に答える
2

はい、どうぞ:

^(1|2|3|4|5|6|7|8|9|10)$

非常に明確で、誤解することはできず、日として明確です。私にとってより良い正規表現になります。ここでは短くて不可解なものは必要ありません

于 2012-11-22T08:16:54.533 に答える
1

あなたはこれを試すことができます:

^([1-9]|10)$
于 2012-11-22T08:20:33.490 に答える
0

正規表現を使用して、1から10までの番号を確認します-

^([1-9] | 10)$

于 2012-11-22T10:08:13.050 に答える