Хорошо, я понял это:
Поместите шаблон разделения в захватывающих паренах и будут включены в вывод. Вы можете использовать \ w + или \ W +:
>>> re.compile(r'(\w+)').split('hello, foo')
['', 'hello', ', ', 'foo', '']
Чтобы избавиться от пустых результатов, пропустите его через filter () с None в качестве функции фильтра, которая отфильтрует все, что не оценивается как true:
>>> filter(None, re.compile(r'(\w+)').split('hello, foo'))
['hello', ', ', 'foo']
Редактировать: CMS указывает, что если вы используете \ W +, вам не нужно использовать filter ()