【发布时间】:2014-10-07 08:11:28
【问题描述】:
我正在尝试为具有固定最大(例如 4)个有效数字的浮点数找到正则表达式。
这应该匹配:
- 123.4
- 12.34
- 1.2
- 223
- 0.1234
- 0.000001234
问题是点前后的非零数总共最多为 4 个。
我尝试拆分问题并找到解决方案:
- 0.xxxx
- 0.000xxx
- xxxx
但是对于在点之前和之后找到有效数字的情况,我没有找到解决方案。 (examples: 1.23 2.345)
更新: 我想我找到了解决方案:
^(?!(?:.*[1-9](\.?[0-9]){4,}))([-+]?\d+\.?\d*?)$
【问题讨论】:
-
-是输入的一部分吗?点是必要的吗? -
- 不是输入的一部分。没必要
-
您要允许
.23还是65.? -
是的,我允许 0.23 和 65。如果这样可以让问题变得更容易。
-
/([1-9]+([0-9]+)?)?\.(([1-9])|(0+[1-9]+))/g将匹配所有有效数字(不回答您的问题,具体来说,只是认为它可能会有所帮助)