如何查找字符串中所有出现的单词的所有索引[重复]

Posted

技术标签:

【中文标题】如何查找字符串中所有出现的单词的所有索引[重复]【英文标题】:How to find all the indexes of all the occurrences of a word in a string [duplicate] 【发布时间】:2016-05-13 03:23:35 【问题描述】:

这是我的代码:

sentence = input("Give me a sentence ")

word = input("What word would you like to find ")


sentence_split = sentence.split()


if word in sentence_split:
   print("have found",word,)
   print("The word comes in the position" )
else:
   print("error have not found",word)

wordfound = (sentence_split.index(word)+1)

print(wordfound)

我能够获取字符串中单词第一次出现的索引。我怎样才能获得所有的出现?

【问题讨论】:

纯代码编写请求在 Stack Overflow 上是题外话——我们希望这里的问题与特定编程问题有关——但我们很乐意帮助您自己编写!告诉我们what you've tried,以及您遇到的问题。这也将有助于我们更好地回答您的问题。 @GeorgeStocker:虽然我能理解它不应该被删除,但这是一个代码请求的教科书案例...... @Cerbrus 我还没有找到一个密切的理由说明“纯代码编写请求”是题外话;事实上,我们明确表示同意他们,只要他们不要求太多:meta.stackexchange.com/a/224104/16587 @GeorgeStocker 作为骗子关闭它怎么样? Find all occurrences of a substring in Python。我会等到得到你的同意后再敲门。 【参考方案1】:

使用re.finditer:

import re
sentence = input("Give me a sentence ")
word = input("What word would you like to find ")
for match in re.finditer(word, sentence):
    print (match.start(), match.end())

对于word = "this"sentence = "this is a sentence this this",这将产生输出:

(0, 4)
(19, 23)
(24, 28)

【讨论】:

我认为值得指出的是,它仅适用于“非重叠匹配”,因此不适用于: sentence="ababa" 和 word="aba"

以上是关于如何查找字符串中所有出现的单词的所有索引[重复]的主要内容,如果未能解决你的问题,请参考以下文章

12 solr

华为python机试题目:整数与IP地址间的转换图片整理字串的连接最长路径查找提取不重复的整数字符串合并处理字符串最后一个单词的长度删除字符串中出现次数最少的字符

如何查找字符串中所有出现的字符的索引? [复制]

如何在JavaScript中查找一个字符串中所有出现的索引?

如何查找列表中所有唯一元素的所有索引[重复]

匹配除以单词开头之外的所有内容的模式[重复]