使用异构文本文件中的EXPONENTS提取数字

时间:2014-03-24 08:13:19

标签: python python-2.7

我需要从文本文件中取出一些未格式化的数值数据。在文本文件中,数字在某处由单个空格分隔,在某处由多个空格分隔,在某处由制表符分隔;漂亮的异构文字:(   我希望Python忽略所有空格/制表符并识别整个数值并将它们放在数组/列表中。是否可以使用Python执行此操作?

编辑:有许多用科学/指数表示法编写的数字,例如: 1.2345E+06,Python不会将它们识别为数字。所以\d不起作用:(

我不想为此目的使用普通的字符串搜索(假设有许多字符串/单词没有兴趣/用途)。 regular expression module文档没有提及此问题。

2 个答案:

答案 0 :(得分:2)

如果线条像" 2.3e4"或" 2.6"或者左右,试试:

^\s*?([+-]?\d+(\.\d+)?(e[+-]?\d+)?)\s*$

注意\ s *?标记(非贪婪零/更多空格)。别忘了那里的问号 - 不包括问号会让你只抓住你号码的最后一位数字。

AFAIK python除了数字之外没有特殊符号来捕获数字

答案 1 :(得分:1)

您可以使用像\s+([-+]?\d*\.?\d+(?:[eE][-+]?\d+)?)\s+这样的正则表达式(改编自here)。请查看this,了解如何在文件中搜索正则表达式。