0

.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)。关于如何纠正它的任何想法?

4

2 回答 2

1

你的正则表达式有这个:

([0-9.-]+)

它缺少 E - 在括号中添加(在前面或后面,没关系)。此外,您可能需要将减号移到前面,因此它不会被解释为范围。像这样:

([-0-9.E]+)
于 2013-10-17T13:26:16.320 回答
0

您的正则表达式不允许E-18. 具体E没有提到。

请参阅此问题以获得更好的正则表达式:如何使用正则表达式检测浮点数

于 2013-10-17T13:26:01.113 回答