Python-如果是;全称;单词在文本中,请打印出来,否则不要';T

Python-如果是;全称;单词在文本中,请打印出来,否则不要';T,python,for-loop,if-statement,Python,For Loop,If Statement,我遇到了一个问题,我想比较文本中的一个单词,这意味着如果文本中有一个单词,它应该打印出来 问题是,我有一个单词是“lo”-我的文本是=“大家好,我的名字是Stackoverflow”-它会打印出整个文本,文本中有一个lo,在“hello”和“Stackoverflow”中 我的问题是,当我想搜索诸如“lo”之类的词时,如何使其成为一个词,而不是打印出来(如果它等包含在诸如“hello”或“stackoverflow”之类的词的内部)-仅当它包含单词“lo”时才打印出来 使用string.find

我遇到了一个问题,我想比较文本中的一个单词,这意味着如果文本中有一个单词,它应该打印出来

问题是,我有一个单词是“lo”-我的文本是=“大家好,我的名字是Stackoverflow”-它会打印出整个文本,文本中有一个lo,在“hello”和“Stackoverflow”中

我的问题是,当我想搜索诸如“lo”之类的词时,如何使其成为一个词,而不是打印出来(如果它等包含在诸如“hello”或“stackoverflow”之类的词的内部)-仅当它包含单词“lo”时才打印出来

使用
string.find()
。它返回要查找的子字符串的索引,如果未找到,则返回
-1
。所以您可以应用
if
语句来检查它是否是子字符串

s='Hello there Stack!'
if (s.find('llo')!=-1):
    print('String found')

希望这有帮助

将字符串拆分为单词,然后测试每个单词中的子字符串

For word in s.split():
  If q in word:
    Print word

你可以这样做,但是有。。。400个边缘案例将使这成为一个问题

text = "This is my text"
keywords = ["Lo"]
if len(set(text.split()).intersection(set(keywords))) > 0:
    print("Yes")

最直接的方法可能是使用正则表达式。您可以使用正则表达式,并了解如何在python中实现它们


Python的正则表达式库可能是goif循环的(最佳)方式?如果不是循环,你是说while还是for循环,对吗。。除当前代码外,topicstarter仅查找一个匹配项,并在字符串中查找多个匹配项。。“包含在诸如“hello”或“stackoverflow”之类的单词中-只有在包含单词“lo”时才打印出来”@RaymondNijland我们可以为此使用
count
函数。。因此,我们也可以使用
count
来检查子字符串。我尝试了这个解决方案,它帮助我解决了这个问题:)谢谢!我相信下面的其他人也写了很好的解决方案!
text = "This is my text"
keywords = ["Lo"]
if len(set(text.split()).intersection(set(keywords))) > 0:
    print("Yes")
import re

target_strings = ["lo", "stack", "hell", "cow", "hello", "overf"]

for target in target_strings:
  re_target = re.compile(r"\b({})\b".format(target), flags=re.IGNORECASE)
  if re.search(re_target, "Hello stack overflow lo"):
    print(target)

>>> lo
>>> stack
>>> hello