入力が正しいことを確認するために正規表現を使用したい
空 -> 100
例: 0 または 1 または 10,1 または 20.2 または 99
正の値のみ、0 または 100 までの null 値、およびドットとコンマを受け入れます。誰でも私に正しいC#正規表現を教えてください。
どうもありがとう :)
これを試してください (コンマまたはピリオドがある場合は、少なくとも 1 つの次の数字が必要です):
^\d*(?:(?:\.|\,)\d+)?$
これらのリクエストに最適なツール: http://regexpal.com/
よろしく
これを試して:
(100|\d{1,2}[.,]\d+)
しかし、ここで使用する方が正しいDouble.Parse()
です。
string str = '10,1';
bool valid = false;
double num = -1;
str = str.Replace(",", ".");
if (String.IsNullOrEmpty(str)) {
valid = true;
} else {
try {
num = Double.Parse(str);
} catch (Exception ex) {
valid = false;
}
if (num >= 0 && num <= 100) {
valid = true;
}
}
Double.TryParse()
*代わりに使用しなかったのはなぜですか?
悲しいことに、解析に失敗すると結果0
は有効な状態になります。
数値正規表現の多くのサンプルがここにあります
正規表現は、文字の一致に関するものです。数字についてはわかりません。
代わりに を使用して解析してみてください。文字列にの代わりに asが含まれdouble.TryParse()
ているために失敗した場合は、 に置き換えてから再試行してください。,
.
,
.