Разделить текст, сохраняя разделители
У меня 2 варианта данных:
text1 = 'здравствуйте убрать из счета позицию 1 добавить 2 убрать 3. добавить 4 жду исправленный счет'
text2 = 'здравствуйте из счета позицию 1 убрать 2 добавить 3. убрать 4 добавить жду исправленный счет'
Вывод должен быть такой:
для первого случая:
['здравствуйте ',
'убрать из счета позицию 1 ',
'добавить 2 ',
'убрать 3. ',
'добавить 4 жду исправленный счет']
для второго:
['здравствуйте из счета позицию 1 убрать ',
'2 добавить ',
'3. убрать ',
'4 добавить',
'жду исправленный счет']
разделителями являются слова
patterns = 'убрать|удалить|добавить|прибавить|изменить'
Ответы (1 шт):
Автор решения: Sergey K.
→ Ссылка
Могу предложить такой вариант: после каждого уникального слова - разделителя вставить некий неиспользуемый в тексте символ или последовательность символов, чтобы слово попало, а этот символ или последовательность - нет.
Если список разделителей будет меняться динамически, то лучше, конечно, в цикле, а не руками, делать replace.
text1 = 'здравствуйте убрать из счета позицию 1 добавить 2 убрать 3. добавить 4 жду исправленный счет'
delemiters = ['убрать', 'удалить', 'добавить', 'прибавить', 'изменить']
for d in delemiters:
text1 = text1.replace(d, f'**{d}')
arr = text1.split('**')