Регулярные выражения. Не выделяет последнее предложение

Начал изучать регулярные выражения и столкнулся с такой проблемой(Python).
Мне был дан текст, в котором нужно выделить предложения при помощи регулярок.После составления выражения, у меня почему-то не выделяется последнее предложение в тексте
Сам текст

  Жалобы на давящие и сжимающие боли за грудиной с иррадиацией в обе половины грудной клетки, в оба плеча, возникающие при незначительной физ. нагрузке ( ходьба медленным шагом до 30-40 м, подъём по лестнице 8-10 ступеней, наклоны, при ускорении шага сразу же), сопров-ся инспираторной одышкой, слабостью, потливостью, купир-ся длительным отдыхом  или НГ через 5 мин. Нитратами пользуется редко из-за гол. болей. Перебои в работе сердца, эпизоды учащенного сердцебиения, общая слабость, снижение переносимости физич. нагрузок. Повышение АД максимально до 200/100 мм.рт.ст., сопров-ся головной болью, головокружением, слабостью, тошнотой. Адаптирована к АД 130-140/80-90 мм.рт.ст.

ГБ около 10 лет. Клиника ИБС лет 6. Лечилась стационарно в 12 г/б лет 5 назад, выписки нет. Ухудшение - последние 6 месяцев в виде учащения болевых приступов, снижения ТФН, усиления одышки, нестабильного АД. Обращалась к кардиологу в частный мед. центр, проводилось ХМ- ЭКГ - зарегистрированы эпизоды депрессии сег. ST при физич. нагрузке, желудочковая и наджелудочковая экстрасистолия. Дома принимает лористу 50 мг, эгилок 100 мг/сут, кардиомагнил, аторис, курсами предуктал. Сохраняются вышеописанные боли в груди и одышка, низкая ТФН. Госпитализирована планово для дообследования, коррекции лечения, возможного проведения КАГ. 
АНАМНЕЗ ЖИЗНИ:  Перенесенные заболевания: ОРВИ, хронич. гастрит, полиостеоартроз, о/хондроз позвоночника. 
Операции – аппендэктомия в молодости, оперирована по поводу трещины прям. кишки лет 25 назад. 
Туберкулез:  нет.  Вирусный гепатит: нет. Венерические заболевания: нет. 
Условия жизни: удовлетворительные.  Аллергологический анамнез: Аллергии нет. НГ - гол. боли. Вредные привычки отрицает.  Эпидемиологический анамнез: В контакте с инфекционным больным не был. Диарея: нет. Гемотрасфузии отрицает.
Акушерский анамнез - родов 1, менопауза с 46 лет. 
Пенсионерка, в ЛН не нуждается. Инвалидности не имеет. 
Наследственный анамнез:  у матери ГБ.

Моя регулярка

r'.*?[?!.](?=\s*[A-ZА-Я])(.*?[?!.](?=\s*[A-ZА-Я])|)'

Для удобства составлял и проверял регулярки через сайт https://regex101.com/


Ответы (1 шт):

Автор решения: Wiktor Stribiżew

У вас блок предварительного просмотра требует наличия 0 и более пробельных символов, за которыми сразу идёт заглавная буква.

Вы можете упростить выражение до

\S.*?[?!.](?=\s*(?:[A-ZА-Я]|$))

См. пример работы выражения.

Подробности

  • \S - один непробельный символ
  • .*? - 0 и более символов, отличных от переноса строки, как можно меньше
  • [?!.] - один из знаков, указанных в данном символьном классе
  • (?=\s*(?:[A-ZА-Я]|$)) - положительный блок предварительного просмотра вперёд, который (сразу после текущей позиции в строке) требует наличия
    • \s* - 0 и более пробельных символов
    • (?:[A-ZА-Я]|$) - либо заглавной буквы, либо конца строки.
→ Ссылка