2014-02-08 66 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