问题描述
我需要从文本文件中取出一些未格式化的数值数据。 在文本文件中,数字之间用单个空格隔开,多个位置用制表符隔开; 相当异类的文本:(我希望Python忽略所有空格/制表符,并标识整个数值并将它们放在数组/列表中。是否可以使用Python做到这一点?
编辑:有许多用科学/指数表示法写的数字,例如1.2345E+06
,Python无法将它们识别为数字。
所以\\d
不能简单地工作:(
我不想为此使用普通的字符串搜索(鉴于有许多字符串/单词无用/无用)。 文档没有提及此问题。
1楼
如果行类似于“ 2.3e4”或“ 2.6”,请尝试:
^\s*?([+-]?\d+(\.\d+)?(e[+-]?\d+)?)\s*$
注意到\\ s *? 标记(非贪婪的零/更多空格)。 不要忘记那里的问号-由于贪婪,不包括问号会使您仅捕获号码的最后一位。
AFAIK python除了数字\\ d之外,没有特殊的符号来捕获数字
2楼
您可以使用正则表达式,例如\\s+([-+]?\\d*\\.?\\d+(?:[eE][-+]?\\d+)?)\\s+
(从改编)。
看一下 ,看看如何在文件中搜索正则表达式。