0

空白/スペース/nullまたは小数点以下2桁の10進数値を持つ値に対してtrueを返す正規表現をc#で作成したいので、それ以外は受け入れないでください。

4

4 に答える 4

2

おそらく最も効率的ではありませんが、この正規表現はあなたが望むことをするはずです:

^((\d+[\.]\d{2})|([\.]\d{2})|()|\s*)$

10 進数は小数点以下 2 桁にする必要がありますが、例として 0.99 または .99 のいずれかを受け入れます。

ユーザーが 9 または 9.0 または 9.01 を入力できるようにする (つまり、ユーザーに小数点以下 2 桁まで入力することを強制しない) 場合は、上記を次のように変更するだけです。

^((\d+([\.]\d{0,2})*)|([\.]\d{0,2})|()|\s*)$

量指定子を {2} ではなく {0,2} に設定し、小数点以下の桁数をオプションにするだけです。

于 2012-11-15T19:29:11.487 に答える
0

この正規表現を使用する^(\s+)|(([+-])?\d+[,\.]\d{2})|()|(null)$

于 2012-07-18T08:42:57.307 に答える
0

数字と空の文字列のシナリオを処理するには、このパターンをお勧めします。

^[-+]?\d*(\.\d{2})?|\s*$

念のため、 RegEx で入力として渡すと がスローされるNULLことを経験しました。したがって、私の推奨事項は、次と一致することにより、演算子を使用して検証することです。nullArgumentNullExceptionNULL!=null

if(str != null && RegEx.IsMatch(str,@"^[-+]?\d*(\.\d{2})?|\s*$"))
   // valid data

どこ:

str = データ検証を含む文字列

上記のパターンでは、有効な小数として-.00または-0.00も許可されます。

于 2012-11-15T21:24:29.483 に答える
0
^\s*(?:[+-]?\d*\.\d{2})?\s*$

オプションで空白で囲まれた、または空/空白のみの文字列である小数点以下 2 桁の数値に一致します。

于 2012-07-18T08:40:02.420 に答える