最大值的正则表达式

use*_*981 0 .net c# regex

我已经提出了以下正则表达式来接受.25间隔或四分之一格式的值,如1.25,10.75,11.50,12,13.

正则表达式

^\d+((\.0+)*|(\.250*)|(\.50*)|(\.750*))$
Run Code Online (Sandbox Code Playgroud)

接受值 = 0,0.25,0.50,0.75,3,1.25,1.50,1.75,5,10

不接受的值 = 0.15,0.20,0.26,0.30,1.30,1.55

我有以下问题;

1-它不接受.25但接受0.25

2-如何将值限制为最大数量,我希望它最多接受15.5

Gim*_*mly 6

在我看来,正则表达式不是这种工作的正确工具.您要接受的所有值都是十进制值,为什么不简单地将输入的值解析为十进制,然后检查它是否与您接受的值相符?

decimal number;

if (Decimal.TryParse(value, out number))
   // Check if you're in the correct range
Run Code Online (Sandbox Code Playgroud)

它会更简单,更容易出错.