在Python中使用多个分隔符拆分字符串

13

我正在使用正则表达式以多个分隔符分割字符串。但是,如果我的两个分隔符在字符串中相邻,它会在结果列表中放置一个空字符串。例如:

re.split(',|;', "This,is;a,;string")

执行结果为

['This', 'is', 'a', '', 'string']

有没有什么方法可以避免在列表中获取'',而不必添加,作为分隔符?

1个回答

33

试试这样:

import re
re.split(r'[,;]+', 'This,is;a,;string')
> ['This', 'is', 'a', 'string']

嗯,好的。那么如果我的分隔符之一也是一个单词怎么办?例如:re.split(',|;|string', "This,is;a,;string") - David DeMar
2
那么这个代码就可以工作了:re.split(r'[,;]+|string', 'This,is;a,;string') - Óscar López
1
现在的输出将是 ['This', 'is', 'a', '', ''] - David DeMar
7
没问题,你正在使用多个分隔符,这是正常的。如果你需要过滤空字符串,则可以采用以下方法:[s for s in re.split(r'[,;]+|string', 'This,is;a,;string') if s] - Óscar López

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接