5

浮動小数点数に一致する正規表現を定義するのに問題がありますが、整数を識別しません。

浮動小数点数に一致する次の正規表現があります。

(\+|-)?([0-9]+\.?[0-9]*|\.[0-9]+)([eE](\+|-)?[0-9]+)?

上記の式を整数と一致しないように変更するにはどうすればよいですか?

一致する必要があるものの例を次に示します。

3.3
.3
5E6
.2e-14
7E+3
4.
5.E2
1e2
4

2 に答える 2

9

正規表現フレーバーが先読みをサポートしている場合は、数値の終わりの前に浮動小数点文字の1つを要求します。

((\+|-)?(?=\d*[.eE])([0-9]+\.?[0-9]*|\.[0-9]+)([eE](\+|-)?[0-9]+)?

追加の読書。

少し最適化されたバージョンもあります。

[+-]?(?=\d*[.eE])(?=\.?\d)\d*\.?\d*(?:[eE][+-]?\d+)?

オプションの+またはから始めます-。次に、文字の1つ.eまたはE任意の桁数の後に必要です。次に、文字列の前または後に、少なくとも1桁の数字が必要です。数字、オプション.、およびそれ以上の数字を照合します。次に(完全にオプション)aneまたはanEおよびオプションの+or-そして1つ以上の数字。

于 2012-11-06T13:32:56.350 に答える
0

これはあなたのニーズに合うはずです:

[+-]?([0-9]+\.([0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?
于 2012-11-06T13:36:43.427 に答える