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

时间:2013-10-17 13:12:47

标签: 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 line in f:
            match = regexp.match(line)
            if match:
                rotations.append(float((match.group(1))))

问题是它只返回浮点指数的第一部分(即7.107927而不是7.107927E-18)。关于如何纠正它的任何想法?

2 个答案:

答案 0 :(得分:1)

你的正则表达式有这个:

([0-9.-]+)

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

([-0-9.E]+)

答案 1 :(得分:0)

您的正则表达式不允许E-18。具体而言,未提及E

请参阅此问题以获得更好的正则表达式:How to detect a floating point number using a regular expression