2012-12-06 116 views

回答

2

由默认的拆分可以处理多种类型的空白,不知道如果它足够满足您的需求,但可以尝试:

>>> s = "a \tb  c\t\t\td" 
>>> s.split() 
['a', 'b', 'c', 'd'] 

它确实适用于混合多个空格和制表符。

1

先进行文本替换然后再进行拆分。

例如用空格替换所有选项卡,然后在空间上拆分。

1

您可以先使用正则表达式:

​​
+1

您也可以使用're.split'直接进行分割。 – Blckknght

1

对于空格分隔符,str.split()已经做了你可能想要的。 the Python Standard Library

str。 分裂([ [,maxsplit]])

如果月未指定被或None,一个不同的分割算法被应用于:连续空白的运行被认为是一个单独的分隔符,如果字符串具有前导或尾随空白,结果将在开始或结束时不包含空字符串。因此,将空字符串或只包含空格的字符串拆分为无分隔符将返回[]。例如,' 1 2 3 '.split()返回['1', '2', '3'],' 1 2 3 '.split(None, 1)返回['1', '2 3 ']

2

我与由不同的空格字符分隔的一些字符串相同的问题,并且如图中的Regular Expressions库说明书中使用\ S

\ s匹配任何空格字符,这相当于set [\ t \ n \ r \ f \ v]。

,你将需要进口重新作为正则表达式处理程序:

import re 
line = "something separated\t by \t\t\t different \t things" 
workstr = re.sub('\s+','\t',line) 

所以,任何空白或分离器(\s)重复一次或多次(+)转化为一个单一的列表( ('\ t')

workstr = "something`\t`separated`\t`by`\t`different`\t`things" 
newline = workstr.split('\t') 
newline = ['something','separated','by','different','things'] 
相关问题