Да, что-то не так.Вы принимаете во внимание разделитель только в том случае, если за ним следуют один или два пробела, а затем заглавная буква, поэтому конец «вакцины нового типа?»Например, предложение не будет совпадать.
Я бы не стал слишком ограничивать пробелы, если только это не намерение (текст может быть плохо отформатирован), потому что, например, «Hello Lucky Boy! How areты сегодня?"не будет разделен.
Я также не понимаю ваш пример, почему только первое предложение заключено в "?
В любом случае:
>>> Text="""But in the case of malaria infections, dendritic cells and stuff.
A new type of vaccine? My uncle!
"""
>>> Sentences = re.split('[?!.][\s]*',Text)
>>> Sentences
['But in the case of malaria infections, dendritic cells and stuff',
'A new type of vaccine',
'My uncle',
'']
Вы можететакже отфильтруйте пустые предложения:
>>> NonemptyS = [ s for s in Senteces if s ]