import re
p = re.compile(r"([?.;])")
ss = re.split(p, 'This is a test? This is a test?good.bad')
for s in ss:
print(s)
Результат:
This is a test
?
This is a test
?
good
.
bad
Я надеюсь, что результат будет:
This is a test?
This is a test?
good.
bad
Почему он помещает разделитель в другую строку?
РЕДАКТИРОВАТЬ: Я думаю, я понимаю, почему он это сделал. Вопрос в том, как получить желаемый результат.