0

有効数字の最大数 (たとえば 4) が固定された float の正規表現を見つけようとしています。

これは次と一致する必要があります。

- 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*?)$

gこれを試してください。これは有効数字 4 桁以下にのみ一致します。フラグを付けることを忘れないでくださいm。デモを参照してください。

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

于 2014-10-07T08:16:27.953 に答える
0

このようなものが欲しいと思いますが、

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

デモ

于 2014-10-07T08:57:16.620 に答える