空白/スペース/nullまたは小数点以下2桁の10進数値を持つ値に対してtrueを返す正規表現をc#で作成したいので、それ以外は受け入れないでください。
質問する
2180 次
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
ことを経験しました。したがって、私の推奨事項は、次と一致することにより、演算子を使用して検証することです。null
ArgumentNullException
NULL
!=
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 に答える