2014-02-08 67 views
0

我读从STD输入一个文件在Python和每一行的时间线是按以下格式:拆分与Python字符串重新

Id:0\t1.0,0.0,83,212,302,475\n 

其中\t代表标签和\n新线。我想用python regex解析它并获得一个包含所有字符串的唯一数字的列表。

E.g. ['0','1.0','0.0','83','212','302','475'] 

请问您可以告诉我如何在一行内执行此操作吗?

回答

2
my_str = 'Id:0\t1.0,0.0,83,212,302,475\n' 

re.findall('[\d\.]+',my_str) 
Out[144]: ['0', '1.0', '0.0', '83', '212', '302', '475'] 

你可以交替它这样做:

[x.strip('Id:\n') for x in re.split('[\t,]',my_str)] 
Out[143]: ['0', '1.0', '0.0', '83', '212', '302', '475'] 

但是,这是一个有点脆弱的(和难以阅读)

+0

这是顺利,因为它可能永远拿!非常感谢...我能否请求你向我解释魔法是如何运作的? – Matteo

+0

如果使用多次,我会建议编译RegEx。 – thefourtheye

+0

@thefourtheye - 你是什么意思? – Matteo