Python 如何使用find()查找整个字符串

Python 如何使用find()查找整个字符串,python,Python,如何使用find()函数查找整个字符串 例如,我的输入: word = 'banana' sentence1 = 'Hello, I very like eat banana' >True sentence2 = ' Hello, I very like eat banana1' >False 我想使用find()函数,因为我想得到这个字符串的开始和结束位置 例如: loc = sentence1.find(word) 一个过度使用的解决方案可能是使用正则表达式。您的表达式可

如何使用
find()
函数查找整个字符串

例如,我的输入:

word = 'banana'

sentence1 = 'Hello, I very like eat banana'
>True

sentence2 = ' Hello, I very like eat banana1'
>False
我想使用
find()
函数,因为我想得到这个字符串的开始和结束位置

例如:

loc = sentence1.find(word)

一个过度使用的解决方案可能是使用正则表达式。您的表达式可以使用工作边界来修复添加1时的问题

import re
text = 'Hello, I very like eat banana'
start, end = re.search(r'\bbanana\b', text).span()
span
返回一个元组,这样您就可以将它分配给一个变量,就像(20,40)一样,您可以使用[0]等访问它,也可以将它分配给上面的两个变量


如果您经常这样做,我建议您首先在正则表达式上使用
re.compile()

那么您的问题是什么?您希望得到什么样的输出?类似于
H
a
你好,我非常喜欢吃香蕉
?@Simon预期输出:23(香蕉的起始位置)和结束位置28,如果我的结束位置=loc+len(单词)——1@VasilisG. 如果单词!=在句子2中,
find()
检查字符串中的子字符串,由于
banana1
作为字符串包含
banana
作为子字符串,因此,
find()
将返回子字符串的位置。如果你想找到确切的单词,那么你必须把句子分开,并分别比较每个单词。注意,这也与像“苹果、香蕉、樱桃”这样的词相匹配,这可能是OP想要的,也可能不是OP想要的。我想他想要的只是单词
香蕉
的位置,这似乎可以