2012-10-17 106 views
3

Possible Duplicate:
How to detect a floating point number using a regular expression浮点数字

匹配Python的正则表达式如何编写符合浮点数的字符串表示一个Python正则表达式?

该表达式应与任何字符串匹配,如float('3.5')所示,构造函数为float。因此表达式应该匹配'0.''.0'但不是'.'

没有必要匹配无穷大和NaN的字符串表示形式。

+4

舌头在脸颊回答:'尝试:浮置(富)除了ValueError异常:...' – Amber

+0

@Amber:是的,但不能作为积木建造更复杂的正则表达式。 – user763305

+0

因此舌头在脸颊方面。 – Amber

回答

16
r'[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?' 
+0

05.5是什么,这是一个无效的浮点数,也可以通过这个正则表达式匹配吗?和5.5e + 1.2。这也是有效的,但不能与正则表达式匹配。 –

+2

@Jingjie Zhan:Python和C++都接受05.5作为有效的浮点数字。 Python和C++都不接受5.5e + 1.2。 – user763305

+0

感谢您的澄清! –