Python. Разбить строку по точкам, игнорируя точки в описании даты. Т.е. надо после точки сделать "с новой строки", игнорируя точки в дате
Всем привет. Дан текст типа:"Внимание.Планируются профилактические работы.Они будут проведены 30.01.2023.Обращайтесь за справками" Надо: каждое предложение (после точки) с новой строки. Я решаю это методом str.replace('.', '\n), но тогда разрываются цифры даты. Тогда я решил ввести цикл с условием:
for i in range(0, len(str)):
if str[i] == '.' and str[i+1].isalpha():
str = str.replace('.', '\n')
но всё равно цифры рвёт. Какой подход посоветуете? что я делаю не так?
Ответы (3 шт):
Автор решения: Strunder
→ Ссылка
Сделай перебор букв и если буква будет Заглавной савь "/n".
stroke = "Внимание.Планируются профилактические работы.Они будут проведены 30.01.2023.Обращайтесь за справками"
strokeexit = ""
for i in stroke:
if i.isupper():
strokeexit+="\n"
strokeexit+=i
print(strokeexit)
В таком случае вывод:
Автор решения: Евгений.
→ Ссылка
Решено с помощью регулярных выражений так:
import re
text = "Внимание.Планируются профилактические работы.Они будут проведены 30.01.2023.Обращайтесь за справками"
pattern = r'([.])([\D])'
result = re.sub(pattern, r"\1\n\2", text)
print(result)
Автор решения: Дмитрий
→ Ссылка
Как вариант - .[^(\d{2,2}.(\d{2,2}|\d{2,4}))] - чтобы за "." не следовала последовательность из 2 цифр + точка + 2 или 4 цифры
