2012-11-12 110 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 –

相关问题