2012-11-12 107 views
1

可能重複:
Python: Split string with multiple delimiters試圖將一個字符串分解

我有一個小的語法問題。我有一個字符串和另一個具有分隔符列表的字符串。我需要通過.split方法分割它。

我似乎無法弄清楚如何,這肯定會給出一個類型錯誤。

String.split([' ', '{', '=']) 

如何將它與多個分離器分開?

+0

我們展示了輸入和預期的輸出,讓你從我們 –

回答

7

str.split()只接受一個分隔符。

使用re.split()使用正則表達式進行拆分。

import re 

re.split(r"[ {=]", "foo bar=baz{qux") 

輸出:

['foo', 'bar', 'baz', 'qux'] 
1

這不是如何內置split()方法效果。它僅使用單個字符串作爲分隔符,而不是單個字符分隔符的列表。可以使用regular-expression based分割。這可能意味着建立一個正則表達式是「或」您的所有期望的分隔符:

splitters = "|".join([" ", "{", "="]) 
re.split(splitters, my_string) 
+0

想要的答案,我不認爲這會工作就是這樣。 're.escape'可能是需要的。 –

0

您可以用re(正則表達式)庫做到這一點,像這樣:

import re 
result=re.split("[abc]", "my string with characters i want to split") 

凡方括號中的字符是你想要分割的字符。

0

從使用正則表達式,而不是分裂:

>>> import re 
>>> s = 'toto + titi = tata' 
>>> re.split('[+=]', s) 
['toto ', ' titi ', ' tata'] 
>>> 
+0

您的指環表達式缺少空格''。 – 2012-11-12 08:45:54

0
import re 
string_test = "abc cde{fgh=ijk" 
re.split('[\s{=]',string_test) 
+1

OP在他的分隔符列表中沒有包含*每個*空格和小節​​'|'。 – 2012-11-12 08:48:42

+0

你是對的,thx –

相關問題