...请注意,值将由一个或多个空格或TAB字符
分隔
如果有多个不同类型的分隔字符,如何在这种情况下使用split()方法?
答案 0 :(得分:2)
使用正则表达式而不只是一个分隔符进行拆分:
答案 1 :(得分:2)
默认情况下,分割可以处理多种类型的空白区域,不确定它是否足以满足您的需要但是可以尝试:
>>> s = "a \tb c\t\t\td"
>>> s.split()
['a', 'b', 'c', 'd']
它肯定适用于多个空格和标签混合。
答案 2 :(得分:2)
我遇到了一些问题,一些字符串被不同的空格字符分隔,并使用 \ s ,如Regular Expressions库规范中所示。
\ s匹配任何空白字符,这相当于集合[\ t \ n \ r \ n \ f \ v]。
您需要导入 re 作为正则表达式处理程序:
import re
line = "something separated\t by \t\t\t different \t things"
workstr = re.sub('\s+','\t',line)
因此,重复一次或多次(\s
)的任何空格或分隔符(+
)将转换为单个列表(\t
),您可以使用split('workstr = "something`\t`separated`\t`by`\t`different`\t`things"
newline = workstr.split('\t')
newline = ['something','separated','by','different','things']
重新处理\ T')
{{1}}
答案 3 :(得分:1)
首先进行文本替换然后拆分。
e.g。用空格替换所有制表符,然后在空格上分割。
答案 4 :(得分:1)
您可以先使用正则表达式:
import re
re.sub('\s+', ' ', 'text with whitespace etc').split()
['text', 'with', 'whitespace', 'etc']
答案 5 :(得分:1)
对于空白分隔符,str.split()
已经完成了您想要的操作。来自the Python Standard Library,
str。拆分([ sep [, maxsplit ]])
如果未指定 sep 或
None
,则会应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串有前导或尾随空格,结果将在开头或结尾不包含空字符串。因此,将空字符串或仅由空格组成的字符串拆分为无分隔符将返回[]。例如,
' 1 2 3 '.split()
返回['1', '2', '3']
,' 1 2 3 '.split(None, 1)
返回['1', '2 3 ']
。