我需要从文本文件中取出一些未格式化的数字数据。在文本文件中,数字在某处由单个空格分隔,某处由多个空格分隔,某处由制表符分隔;相当异构的文本:( 我希望 Python 忽略所有空格/制表符并识别整个数值并将它们放入数组/列表中。是否可以使用 Python 来完成此操作?
编辑:有很多用科学/指数表示法写的数字,例如1.2345E+06
,Python 不将它们识别为数字。所以 \d
不能简单地工作:(
我不想为此目的使用普通的字符串搜索(因为有许多字符串/单词不感兴趣/无用)。 regular expression module文档没有提到这个问题。
最佳答案
如果行类似于“2.3e4 ”或“2.6”左右,请尝试:
^\s*?([+-]?\d+(\.\d+)?(e[+-]?\d+)?)\s*$
注意到\s*了吗?标记(非贪婪零/多个空格)。不要忘记那里的问号 - 不包括问号将使您由于贪婪而仅捕获号码的最后一位数字。
AFAIK 除了表示数字的\d 之外,Python 没有特殊符号来捕获数字
关于python - 从异构文本文件中提取带有指数的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22604068/