Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
匹配浮点数的Python正则表达式_Python_Regex_Floating Point - Fatal编程技术网

匹配浮点数的Python正则表达式

匹配浮点数的Python正则表达式,python,regex,floating-point,Python,Regex,Floating Point,可能重复: 如何编写与浮点数的字符串表示形式匹配的Python正则表达式 表达式应该匹配float构造函数接受的任何字符串,如float('3.5')。因此,表达式应该匹配'0.和'.0',而不是'. 不需要匹配无穷大和NaN的字符串表示形式。开玩笑地回答:尝试:float(foo),ValueError除外:…@Amber:是的,但这不能用作构建更复杂正则表达式的构建块。为什么要使用locale标记?您是否还希望将浮点数与千位分隔符(1234.56)、替代十进制分隔符(1'234,56)、非

可能重复:

如何编写与浮点数的字符串表示形式匹配的Python正则表达式

表达式应该匹配
float
构造函数接受的任何字符串,如
float('3.5')
。因此,表达式应该匹配
'0.
'.0'
,而不是
'.


不需要匹配无穷大和NaN的字符串表示形式。

开玩笑地回答:
尝试:float(foo),ValueError除外:…
@Amber:是的,但这不能用作构建更复杂正则表达式的构建块。为什么要使用
locale
标记?您是否还希望将浮点数与千位分隔符(
1234.56
)、替代十进制分隔符(
1'234,56
)、非ASCII数字、其他编号系统(如南亚编号系统)(
1,0000000
)相匹配等等?听起来你可能想在你走太远的正则表达式之路之前检查一下Python的十进制模块使用的正则表达式:你可能想调整特殊值的位(NaN,无穷大)。05.5是一个无效的浮点数,也可以与这个正则表达式匹配?和5.5e+1.2。这也是有效的,但不能被正则表达式匹配。@静杰詹:Python和C++都接受5.5作为有效浮点文字。Python和C++都不接受5.5E+1.2,谢谢!詹京杰:但是你是对的,正则表达式不是100%正确的
05.0
05.
05e0
是有效的浮点文字,而
05
不是(它是一个八进制整数文字)。但是,正则表达式接受所有四个字符串。这对43543ff5.4不起作用,因此在数字中输入任何字母,它就会通过
r'[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?'