Разделить строку по вхождениям шаблона. Если в шаблоне используются фиксирующие скобки, то текст всех групп в шаблоне также возвращается как часть результирующего списка.
Итак, вам просто нужно обернуть свой разделитель группой захвата:
() <- keep the separators [] <- match everything in between ^a-zA-Z0-9 <- except alphabets, upper/lower and numbers.
Ответ 4
Если у вас есть только 1 разделитель, вы можете использовать понимание списка:
text = 'foo,bar,baz,qux' sep = ','
Добавление / предваряющий разделитель:
result = [x+sep for x in text.split(sep)] #['foo,', 'bar,', 'baz,', 'qux,'] # to get rid of trailing result[-1] = result[-1].strip(sep) #['foo,', 'bar,', 'baz,', 'qux']
result = [sep+x for x in text.split(sep)] #[',foo', ',bar', ',baz', ',qux'] # to get rid of trailing result[0] = result[0].strip(sep) #['foo', ',bar', ',baz', ',qux']
Разделитель как собственный элемент:
result = [u for x in text.split(sep) for u in (x, sep)] #['foo', ',', 'bar', ',', 'baz', ',', 'qux', ','] results = result[:-1] # to get rid of trailing