Удалить все из строки кроме ключевого слова

Как можно удалить все из строки кроме одного клчевого слова?

import re
s = 'запиши пожалуйста текст'
reg = re.compile('[^запиши]')
print(reg.sub('', s))

вот код который я пробовал, но тогда он оставляет в строке запишиаа, можно как-то оставить только запиши, и все?


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

Автор решения: CrazyElf

А если слово несколько раз в строке встретиться, тогда что должно вывести? А так то такая задача решается без регулярок:

import re
s = 'запиши пожалуйста текст'
word = 'запиши'
print(word if word in s else '')
# запиши

Ну или если уж хочется с регулярками:

import re
s = 'запиши пожалуйста текст'
reg = re.compile('запиши')
print(reg.findall(s))
# ['запиши']

Т.е. не "заменять всё, кроме такого-то слова", а наоборот: "найти и показать такое-то слово".

В любом случае вы не можете ничего убрать из строки, вы можете только создать новую строку на основе старой (потому что строки иммутабельны). Мыслить надо в этом направлении: что надо взять в новую строку из старой строки и как это проще сделать.

→ Ссылка