Для деления текста или строки по заглавным буквам воспользуемся позитивной опережающей проверкой регулярных выражений и функцией re.split()
модуля re
.
# исходная строка >>> line = 'Мама мыла раму, а Маша помогала. Отрывок из прописи 1 класса.' >>> import re >>> re.split(r'\s+(?=[А-Я])', line) # ['Мама мыла раму, а', 'Маша помогала.', 'Отрывок из прописи 1 класса.']
Для деления по заглавным буквам строки записанной слитно, необходимо сначала изменить строку, добавить пробел перед заглавной буквой, а потом разделить строку по разделителю "пробел" стандартным методом str.split()
.
Для добавления пробела перед заглавной буквой воспользуемся функцией re.sub()
модуля re
, а в регулярном выражении используем группу с захватом и обратную ссылку.
# исходная строка >>> line = 'МамаМылаРаму' >>> import re >>> re.sub(r'([А-Я])', r' \1', line).split() # ['Мама', 'Мыла', 'Раму']