2013-01-16 183 views
0

我有串,其中包括例如一些無關痛癢的文字 :如何分割具有多個分隔符的Python字符串?

"t1, t2, t3"

如果我分裂它通過split(",")方法我得到一個列表,其中第二項和第三項還包括空白。

如何拆分所需的字符串與乘法分隔符?

+0

的可能重複[Python的:句子分裂產生一個空格(http://stackoverflow.com/questions/14307949/python -sentence-splitting-produce-a-whitespace) – Useless

回答

3

如果您不需要空格,你可以使用:

"t1, t2, t3,t4".replace(" ", "").split(",") 
2

如果逗號後有任意的空間,只是用一個列表理解剝離空白:

[t.strip() for t in inputstring.split(',')] 

或使用正則表達式拆分(在這種情況下,有些矯枉過正):

import re 

re.split(r',\s*', inputstring) 

示範:

>>> inputstring = 't1, t2, t3,t4, t5' 
>>> [t.strip() for t in inputstring.split(',')] 
['t1', 't2', 't3', 't4', 't5'] 
>>> import re 
>>> re.split(r',\s*', inputstring) 
['t1', 't2', 't3', 't4', 't5'] 
6

要麼將​​它們拆分", "(注意空間)或strip後話:

[e.strip() for e in "t1, t2, t3,t4".split(",")] 
>>> ['t1', 't2', 't3', 't4'] 
1

你嘗試了很明顯的:

>>> "t1, t2, t3".split(', ') 
['t1', 't2', 't3'] 
+0

這不是那麼簡單,如果我有3種類型的分隔符會怎樣? – Igal

+0

@ user301639:那麼你應該在你的問題中說過。 :-) – BrenBarn

0

使用帶()。

s = "t1, t2, t3" 
s = [x.strip() for x in s.split(",")] 
print s