Python-如果文本中包含“完整”字词,请打印出来,否则不要

时间:2018-11-18 18:14:09

标签: python for-loop if-statement

我在比较文本中的单词时遇到问题-这意味着如果文本中包含一个单词,则应打印出来。

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

我的问题是,每当我要搜索诸如“ lo”之类的单词时,应该如何将其视为一个单词,如果该单词等包含诸如“ hello”或“ stackoverflow”之类的单词,则不打印出来“-仅打印出带有单词“ lo”的字样吗?

keywords = ["Lo"]
for text in keywords:
   if text in text_roman():
      print("Yay found word")

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

希望这对您有帮助!

答案 2 :(得分:0)

您可以执行此操作,但是有... 400个边缘情况会导致此问题。

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

答案 3 :(得分:0)

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

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