2017-05-22 71 views
0

我想根據當前存儲在數組中的單詞分割一個句子。數組存儲我想作爲分割點的單詞。我可以使用正則表達式作爲分割點嗎?Python - 分割點是一個單詞數組

例子:

array=['and','also','but'] 

文本文件:

I am new to Python and I need help. I am also asking a question. 

需要的輸出:

I need help 
asking a question 
+1

你嘗試過這麼遠嗎?這個問題有幾個步驟。 –

回答

1

可以使用re.split()功能:

import re 
array = ['and','also','but'] 
sentence = "I am new to Python and I need help. I am also asking a question." 
result = re.split("|".join(array), sentence) 

我會加裝飾:

result = [x.strip() for x in result] 
print(result) 
+0

您的腳本導致'['我是Python新手','我需要幫助。我是','問一個問題。']'而@blahhh就像'['我需要幫助' '問一個問題']'。當然,@blahhh並沒有真正解釋導致他們輸出的邏輯。 – boardrider

+0

是的,我認爲問題中的輸出已經錯誤了。 – hurturk

0

這裏是@hurturk解決方案的適應性 - 這將產生@blahhh請求的輸出。
自從上週我的水晶球爆發以來,這個算法是否是@blahhh的意圖,是任何人的猜測。

from __future__ import print_function 

import re 
array = ['and', 'also', 'but'] 
separators = ['\.', '\;', '\?', '\!'] 
sentence = "I am new to Python and I need help. I am also asking a question." 

sentences = re.split("|".join(separators), sentence) 
for sentence in sentences: 
    result = re.split("|".join(array), sentence) 
    result = [x.strip() for x in result] 
    print(result[-1]) 

其中輸出是:

I need help 
asking a question