Удалить все из строки кроме ключевого слова
Как можно удалить все из строки кроме одного клчевого слова?
import re
s = 'запиши пожалуйста текст'
reg = re.compile('[^запиши]')
print(reg.sub('', s))
вот код который я пробовал, но тогда он оставляет в строке запишиаа, можно как-то оставить только запиши, и все?
Ответы (1 шт):
А если слово несколько раз в строке встретиться, тогда что должно вывести? А так то такая задача решается без регулярок:
import re
s = 'запиши пожалуйста текст'
word = 'запиши'
print(word if word in s else '')
# запиши
Ну или если уж хочется с регулярками:
import re
s = 'запиши пожалуйста текст'
reg = re.compile('запиши')
print(reg.findall(s))
# ['запиши']
Т.е. не "заменять всё, кроме такого-то слова", а наоборот: "найти и показать такое-то слово".
В любом случае вы не можете ничего убрать из строки, вы можете только создать новую строку на основе старой (потому что строки иммутабельны). Мыслить надо в этом направлении: что надо взять в новую строку из старой строки и как это проще сделать.