Python 从文本文件中提取浮点指数格式的数字

Python 从文本文件中提取浮点指数格式的数字,python,regex,Python,Regex,我试图从大量.txt文件中提取一个浮点指数,这些文件使用短语进行搜索,然后提取。例如,我有一个类似这样的.txt文件 FEA Results: Tip rotation (deg) =, 7.107927E-18 Tip displacement =, 3.997556E-07 我使用以下脚本提取尖端旋转数据: regexp = re.compile(r'Tip rotation .*?([0-9.-]+)') with open(fileName) as f: for

我试图从大量
.txt
文件中提取一个浮点指数,这些文件使用短语进行搜索,然后提取。例如,我有一个类似这样的
.txt
文件

FEA Results:
Tip rotation (deg) =, 7.107927E-18
Tip displacement =, 3.997556E-07
我使用以下脚本提取尖端旋转数据:

regexp = re.compile(r'Tip rotation .*?([0-9.-]+)')
    with open(fileName) as f:
        for line in f:
            match = regexp.match(line)
            if match:
                rotations.append(float((match.group(1))))

问题是它只返回浮点指数的第一部分(即
7.107927
而不是
7.107927E-18
)。你知道我该怎么纠正它吗?

你的正则表达式不允许
E-18
。具体来说,
E
没有提到

有关更好的正则表达式,请参见此问题:

您的正则表达式有:

([0-9.-]+)
它缺少了E-在括号中加上(在前面或后面,没关系)。此外,您可能需要将减号移到前面,这样它就不会被解释为一个范围。像这样:

([-0-9.E]+)

就在你传说中的金钱上!非常感谢!