0

我正在尝试为具有固定最大(例如 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*?)$
4

2 回答 2

1
^(?!(?:.*?[1-9]){5,})([-+]?\s*\d+\.?\d*?)$

试试这个。这将只匹配 4 个或更少的有效数字。不要忘记放置标志gm.See demo。

http://regex101.com/r/hQ1rP0/28

于 2014-10-07T08:16:27.953 回答
0

I think you want something like this,

^0*(?:[1-9]\d{0,3})?(?:\.0*(?:[1-9]\d{0,3})?)?$

DEMO

于 2014-10-07T08:57:16.620 回答