この正規表現を変更して、1以上または10以下の数値を取得しようとしています。この正規表現では、>=0または<=10が許可されます。
0以上11未満の数値をとるフォームにテキストフィールドがあります。IFと論理演算子TryParseを使用できますが、正規表現が好きです。
@"^\d$|^[1][0]$"
正規表現を少しだけ変更する必要があります
@"^[1-9]$|^10$"
単一の文字を角かっこで囲む必要はありません。交互にグループを使用して、次のように変更します。
@"^([1-9]|10)$"
ここRegexrでそれを参照してください
答えは、これは正規表現を使用する必要があるものではないということです。if (num >= 0)
どちらかといえば、正規表現を使用して数値を解析し、標準などと比較します。
// EDIT: replaced regex with this:
int number;
if (Int32.TryParse(myString, out number)) {
// do something, like:
if (number >= 0 || number <= 10) {
}
}
WinFormsを使用している場合は、10以上のNumericUpDown
コントロールで機能します。また、解析する必要はありません-プロパティには値が含まれます(まあ、それはタイプになります-ちょうどそれをにキャストします)。MinValue
1
MaxValue
Value
decimal
int
使用するもう1つの理由NumericUpDown
-数字以外は入力できず、上下の矢印がユーザーに言っています-このコントロールはあなたからの数字を待っています。
論理演算子を使用してintが1から10の間であるかどうかを確認することをお勧めしますが、有効な正規表現は次のとおりです。
^(10|[1-9])$
はい、どうぞ:
^(1|2|3|4|5|6|7|8|9|10)$
非常に明確で、誤解することはできず、日として明確です。私にとってより良い正規表現になります。ここでは短くて不可解なものは必要ありません
あなたはこれを試すことができます:
^([1-9]|10)$
正規表現を使用して、1から10までの番号を確認します-
^([1-9] | 10)$