我正在尝试从使用短语搜索的多个.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
)。关于如何纠正它的任何想法?
答案 0 :(得分:1)
你的正则表达式有这个:
([0-9.-]+)
它缺少E - 在括号中添加(在前面或后面,无关紧要)。此外,您可能需要将减号移到前面,因此不会将其解释为范围。像这样:
([-0-9.E]+)
答案 1 :(得分:0)
您的正则表达式不允许E-18
。具体而言,未提及E
。
请参阅此问题以获得更好的正则表达式:How to detect a floating point number using a regular expression