首页 > 解决方案 > 简单的浮点正则表达式

问题描述

我正在使用 [+-]?[0-9]*.[0-9]{1,} 这个简单的正则表达式来检测简单的浮点数。它工作正常,但将 4.0O0 检测为浮点数。谁能解释我为什么?我正在使用 python 来做,代码如下:

    pattern=r'[+-]?[0-9]*\.[0-9]{1,}'
    input_float=input().strip()
    if re.match(pattern,input_float):
         print("True")
    else:
         print("False")

标签: regexpython-3.xfloating-point

解决方案


re.match仅匹配字符串开头的给定正则表达式,但不匹配字符串结尾。改为使用re.fullmatch给定的正则表达式匹配整个字符串。

if re.fullmatch(pattern,input_float):

推荐阅读