.25
(例: 1.25
, )の 10 進数の倍数として表される数値に一致する正規表現を作成しようとしています14.75
。
// Must Match
1.0
1.25
1.250000
1.5
1.500
1.75
1.7500
// Must Not Match
1.2
1.46
1.501
1.99
これまでのところ、次の式があります\d+(\.((0+)|(250*)|(50*)|(750*)))
。gskinner.com/regexrのようなオンライン ツールを使用すると機能します。検証属性で式を使用して EntityFramework db をシードすると、検証エラーが発生します。
[RegularExpression(@"^\d+(\.((0+)|(250*)|(50*)|(750*)))$", ErrorMessage = "Hours must be 15 minute increments expressed as decimals (ex. .0, .25, .5, .75)")]
public double Hours { get; set; }
同様の質問 (数値の小数部分を最も近い .25、.5、.75、または整数に丸める方法を探しています) ですが、上記のデータ注釈を使用するには正規表現を使用する必要があります。
質問:
私の表現の何が問題なのか分かる人はいますか?
整数をサポートするように拡張できる場合のボーナス ポイント (例:
4
or4.25
ではなく4.
or4.62
)