我的目标是为一个十进制数编写一个正则表达式,其中一个有效数是
xx.0、xx.125、xx.25、xx.375、xx.5、xx.625、xx.75、xx.875(即以 1/8 为单位) xx 可以是 0、1 或 2 位数字。
我想出了以下正则表达式:
^\d*\.?((25)|(50)|(5)|(75)|(0)|(00))?$
虽然这适用于 0.25,0.5,0.75 它不适用于 0.225, 0.675 等。
我认为“?”也适用于前面有数字的情况。
有人能指出我的错误吗
编辑:要求数字是小数!
Edit2:我意识到我的错误,我对“?”感到困惑。谢谢你。
最佳答案
我认为将小数部分乘以 8 可能会更容易,但您不会考虑在正则表达式中领先最后两位小数的数字。
^\d{0,2}\.(00?|(1|6)?25|(3|8)?75|50?)$
关于regex - 0.25 区间的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16048926/