Есть ли способ найти ключевое слово из строки в python

message = "I'm new and this is new my account."

Программа попытается обнаружить «привет» в этой строке, даже если здесь нет «привет», она найдет ключевое слово в части «и это м ...», если попытаться использовать такой код:

if "hi" in message.lower():
    print("He said hi!")

Как я могу заблокировать это?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
79
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Элегантным решением будет:

if ' hi ' in f' {message} ':
    print("He said hi!")

Или используя регулярное выражение: https://stackoverflow.com/a/5320179/4585157

это может работать, но что, если строка начинается с привет? "привет, меня зовут..." да, после "привет" есть пробел, но перед "привет" нет пробела

Demir 21.12.2020 22:52

@Demir Используйте этот ответ, чтобы справиться с этим делом.

mbomb007 21.12.2020 22:52

@Demir, тогда это все равно сработает. Добавляем пробел до и после сообщения для проверки.

Dolev Pearl 21.12.2020 22:55
Ответ принят как подходящий

Вы можете использовать регулярные выражения.

import re


message = "I'm new and this is new my account."
message_with_hi = "what's up, I'm saying hi"
pattern = r'\bhi\b'  # \b is word boundary

r = re.findall(pattern, message)
r2 = re.findall(pattern, message_with_hi)
print(r)  # prints []
print(r2)  # prints ['hi']

Это также распространяется на такие случаи, как message = "I am saying hi!".

Tnx братан спас меня

Demir 21.12.2020 22:57

@Demir Все хорошо, пожалуйста, примите ответ (нажмите на галочку), если он решил ваш вопрос.

bananafish 22.12.2020 00:09

Другие вопросы по теме