2012-05-01 3 views
11

Я использую регулярные выражения для разделения строки с использованием нескольких разделителей. Но если два из моих разделителей встречаются рядом друг с другом в строке, он помещает пустую строку в результирующий список. Например:Разбиение строки с несколькими разделителями в Python

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

Результаты в

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

Есть ли способ, чтобы избежать '' в моем списке без добавления ,; в качестве разделителя?

ответ

30

Попробуйте это:

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

Хм, ладно. Теперь, если бы один из моих разделителей был также словом? Например: 're.split (', |; | string'," This, is; a,; string ")' –

+2

Тогда это будет работать: 're.split (r '[,;] + | string', 'Это, is; a,; string') ' –

+1

Теперь вывод будет' ['This', 'is', 'a', '', ''] ' –

Смежные вопросы