0

入力が正しいことを確認するために正規表現を使用したい

空 -> 100

例: 0 または 1 または 10,1 または 20.2 または 99

正の値のみ、0 または 100 までの null 値、およびドットとコンマを受け入れます。誰でも私に正しいC#正規表現を教えてください。

どうもありがとう :)

4

4 に答える 4

0

これを試してください (コンマまたはピリオドがある場合は、少なくとも 1 つの次の数字が必要です):

^\d*(?:(?:\.|\,)\d+)?$

これらのリクエストに最適なツール: http://regexpal.com/

よろしく

于 2012-07-12T15:13:17.740 に答える
0

これを試して:

(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は有効な状態になります。

于 2012-07-12T15:19:02.047 に答える
0

数値正規表現の多くのサンプルがここにあります

正規表現ライブラリ

于 2012-07-12T15:14:44.620 に答える
0

正規表現は、文字の一致に関するものです。数字についてはわかりません。

代わりに を使用して解析してみてください。文字列にの代わりに asが含まれdouble.TryParse()ているために失敗した場合は、 に置き換えてから再試行してください。,.,.

于 2012-07-12T15:15:01.717 に答える