2013-07-16 37 views
1

我希望在Python中找到單詞的出現位置,並在該單詞後面打印單詞。詞是空間分開的。如何在Python中找到單詞旁邊的單詞

例如:

如果在一個文件中的詞「樣品」「thisword」的發生。我想要得到這個字。隨着本字不斷變化,我需要一個正則表達式。

+0

「旁邊」你是指之前,之後或兩者?注意添加一個你將要搜索的句子的例子和你想要提取的單詞? –

+0

另外,這個詞可以多次出現嗎?然後怎樣呢? –

+0

旁邊的我的意思是在同一行中出現該單詞後還有另一個單詞,並且該單詞有多個出現。我需要一個正則表達式來獲取指定單詞後出現的單詞。 –

回答

8

python字符串有一個內置的方法拆分,將字符串拆分成由空格字符(doc)分隔的單詞列表,它具有控制拆分單詞的方式的參數,然後可以搜索列表中的字你想,並返回一個索引

your_string = "This is a string" 
list_of_words = your_string.split() 
next_word = list_of_words[list_of_words.index(your_search_word) + 1] 
0

一個非常簡單的方法:

s = "this is a sentense" 
target = "is" 
words = s.split() 
for i,w in enumerate(words): 
    if w == target: 
     # next word 
     print words[i+1] 
     # previous word 
     if i>0: 
      print words[i-1] 
+0

這不起作用,因爲單詞「是」總是不斷變化。所以我認爲它會更好如果我可以得到一個正則表達式來做到這一點 –

+0

你想提供一些關於目標單詞如何改變的細節,以便考慮程序如何被重寫? – Vasilis

0

聽起來像是你想要的功能。

>>> s = "This is a sentence" 
>>> sl = s.split() 
>>> 
>>> def nextword(target, source): 
... for i, w in enumerate(source): 
...  if w == target: 
...  return source[i+1] 
... 
>>> nextword('is', sl) 
'a' 
>>> nextword('a', sl) 
'sentence' 
>>> 

當然,你會希望做一些錯誤檢查(例如,這樣你就不會掉下來結束),所以你得到了目標的所有實例,也許while循環。但是這應該讓你開始。