我正在尝试编写一个正则表达式来匹配表示为.25
(例如1.25
,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 数据库时,它会产生验证错误:
[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、0.5、0.75 或整数的方法)但我需要使用正则表达式来使用上述数据注释。
问题:
有人看到我的表情有什么问题吗?
如果您可以将其扩展为支持整数(例如
4
or4.25
但不是4.
or4.62
) ,则可以加分