2016-02-03 51 views
-65

這是我的代碼:如何找到一個單詞的所有出現的所有指標中的字符串

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) 

我能夠得到第一發生在串詞的索引。我怎樣才能得到全部的發生?

+5

純代碼編寫請求是題外話堆棧溢出 - 我們希望有關問題在這裏以*特定*編程問題 - 但我們會很樂意幫助你自己寫!告訴我們[您嘗試過的](http://whathaveyoutried.com),以及您卡在哪裏。這也將幫助我們更好地回答你的問題。 – Cerbrus

+4

@GeorgeStocker:雖然我可以理解它不應該被刪除,但這是一個教科書的代碼請求的情況下... – Cerbrus

+3

@Cerbrus我還沒有找到一個關於「純代碼寫入請求」的關閉理由脫離主題;事實上,如果他們不要求太多,我們可以明確地與他們聯繫:http://meta.stackexchange.com/a/224104/16587 –

回答

57

使用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) 
+0

我認爲值得指出的是,它僅適用於「非重疊匹配」,因此不適用於:sentence =「ababa」和word =「aba」 – AnukuL

相關問題