regex - 0.25 区间的正则表达式

标签 regex

我的目标是为一个十进制数编写一个正则表达式,其中一个有效数是
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/

相关文章:

ruby - 如何持续监控shell命令的输出?我应该使用 Bash 还是 Ruby?

regex - Vim - 如何使用匹配模式连接行

php - 从任何 YouTube URL 获取 YouTube 视频 ID 的正则表达式模式

Javascript unicode字符串,中文字符但没有标点符号

java - 如何使用特殊字符在字符串中公开

javascript - 如果正则表达式紧随第一个匹配之后,为什么会忽略第二个匹配?

ios - 退格键不能在正则表达式之外快速工作

regex - 从 ifconfig 的输出中提取 MAC 地址的最佳方法?

"find and replace nth occurrence"的正则表达式分割

javascript - jQuery 正则表达式/从 URL 中删除某些单词