通过字符串中的单词获取单词,并保持每个单词之间的间距

时间:2018-11-22 05:46:18

标签: python-3.x

my_string= 'EXPLORE  DATA.. ADD INTELLIGENCE..GET VALUABLE INSIGHTS…'

预期输出:。

EXPLORE
EXPLORE  DATA..
EXPLORE  DATA.. ADD

我已经尝试过re.sub("[^\w]", " ", my_string).split()

给出:['EXPLORE', 'DATA', 'ADD', 'INTELLIGENCE', 'GET', 'VALUABLE', 'INSIGHTS']

采用前两个字符串时,其将为EXPLORE DATA,而实际间距不保留在my_string中。预期为EXPLORE DATA..。如何获得预期的输出。就像第一个单词,然后是前两个单词,然后是前3个单词...等等。

1 个答案:

答案 0 :(得分:1)

您可以使用已创建的单词列表的索引来完成

import re

my_string = 'EXPLORE  DATA.. ADD INTELLIGENCE..GET VALUABLE INSIGHTS…'
word_list = re.sub("[^\w]", " ",  my_string).split()
for word in word_list:
    end_index = my_string.find(word) + len(word) // get the index at the end of the word
    print(my_string[:end_index])

这导致

EXPLORE                                                                                                              
EXPLORE  DATA                                                                                                        
EXPLORE  DATA.. ADD                                                                                                  
EXPLORE  DATA.. ADD INTELLIGENCE                                                                                     
EXPLORE  DATA.. ADD INTELLIGENCE..GET                                                                                
EXPLORE  DATA.. ADD INTELLIGENCE..GET VALUABLE                                                                       
EXPLORE  DATA.. ADD INTELLIGENCE..GET VALUABLE INSIGHTS