Хочу извлечь ключевые слова из текста и 5 символов которые перед ними, как это сделать?
Я создаю некую программу.. и мне хотелось бы узнать как сделать так что бы из определённого текста бралось ключевое слово и то что перед ним например: ( текст: hi man! how are you? ) ключевое слово hi и я хочу что бы взялось ещё 5 символов перед ним ( итог: hi man ) как это сделать?
Можно через обычный find, но его нужно будет дорабатывать для нормальной работы. Лучше сразу regex взять
import re
text = 'hi man! how are you?'
keyword = 'hi'
matched_string = re.search(rf'\b{keyword}\b.{{0,5}}', text)
if matched_string:
matched_string = matched_string.group(0)
print(matched_string)
Искать подстроки регекспом - очень плохая идея. Если текст - куча букв "a", а шаблон "aa...ab", то регексп будет работать за квадрат. Для большого текста и шаблона это будет очень тормозить.
К сожалению, встроенный в питон find имеет ту же проблему. Хоть и работает в пару раз быстрее.
Лучше использовать какой-нибудь PySubstringSearch.