2017-07-10 145 views
0

我想提取文本中特定單詞之間的文本。 例如:在python中找到特定單詞之間的文本

my_list = ['w1 w2 w3 WW w6 w7 w8 WW w9 w10','w1 w2 WW w3 w4 WW w5 w6 w7 WW w8 w9 w10 w11 WW w12 WW w13'] 

所以我想提取WW和WW之間的單詞每個句子。如果一個句子有兩個WW,我的代碼可以在它們之間提取單詞,但是如果一個句子有兩個以上的WW,例如上面例子中的第二個句子,我的代碼就不能提取句子中其餘的WW 。請參閱下面的代碼:

word = 'WW' 

for sentence in my_list: 
    t_b = re.split(word + '|' + word, sentence , re.IGNORECASE) 
    word_between = [t_b[1].strip() for t_b[1] in t_b[1].split()] 

任何建議表示讚賞。非常感謝

+0

你想如何在字符串中處理兩個以上的'WW'實例? –

回答

1
my_list = ['w1 w2 w3 WW w6 w7 w8 WW w9 w10','w1 w2 WW w3 w4 WW w5 w6 w7 WW w8 w9 w10 w11 WW w12 WW w13'] 
[ j.split() for j in sum([ i.split(' WW ')[1:-1] for i in my_list ], []) ] 

輸出:

[['w6', 'w7', 'w8'], 
['w3', 'w4'], 
['w5', 'w6', 'w7'], 
['w8', 'w9', 'w10', 'w11'], 
['w12']] 
0

嘗試使用分割內建功能:

my_list = ['w1 w2 w3 WW w6 w7 w8 WW w9 w10','w1 w2 WW w3 w4 WW w5 w6 w7 WW w8 w9 w10 w11 WW w12 WW w13'] 
my_list[1].split('WW') 

輸出

['w1 w2 ', ' w3 w4 ', ' w5 w6 w7 ', ' w8 w9 w10 w11 ', ' w12 ', ' w13'] 
2

這是我如何解決它 - 而無需使用重,雖然。

my_list = ['w1 w2 w3 WW w6 w7 w8 WW w9 w10','w1 w2 WW w3 w4 WW w5 w6 w7 WW w8 w9 w10 w11 WW w12 WW w13'] 

for item in my_list: 
flag=0 
answer=[] 
for word in item.split(): 
    if word=="WW" and flag==0: 
     flag=1 
    elif word!="WW" and flag==1: 
     answer.append(thing) 
    elif word=="WW" and flag==1: 
     print answer 
     answer=[] 

我的輸出

['w6', 'w7', 'w8']                                      
['w3', 'w4']                                        
['w5', 'w6', 'w7']                                      
['w8', 'w9', 'w10', 'w11']                                    
['w12']       
0

您可以找到索引,然後使用列表分片:

my_list = ['w1 w2 w3 WW w6 w7 w8 WW w9 w10','w1 w2 WW w3 w4 WW w5 w6 w7 WW w8 w9 w10 w11 WW w12 WW w13'] 

new_list = [[c for c, d in enumerate(i.split()) if d == "WW"] for i in my_list] 

new = [i.split() for i in my_list] 

final = [[b[a[i]:a[i+1]][1:] for i in range(len(a)-1)] for a, b in zip(new_list, new)] 

輸出:

[[['w6', 'w7', 'w8']], [['w3', 'w4'], ['w5', 'w6', 'w7'], ['w8', 'w9', 'w10', 'w11'], ['w12']]] 
相關問題