有一段文本,new_text = “你好,北京河北山西山东济南”,highlight_words = [“你好”, “河北”, “山西”],想要挨个从文本中找到该关键词并标红处理。
new_text = "你好,北京河北山西山东济南"
highlight_words = ["你好", "河北", "山西"]
# 处理每一个词
current_word = ''
i = 0
highlighted_parts = []
normal_parts = []
if len(highlight_words)!=0:
while i < len(new_text):
# print(f'---{new_text[i:]}')
found_highlight = False
for word in highlight_words:
if new_text[i:].startswith(word):
# 如果词在高亮列表中,则记录下来
if current_word: # 如果当前有普通文本,先记录
normal_parts.append(current_word)
current_word = ''
highlighted_parts.append(word)
i += len(word)
# print(f'找到后的i:{i}')
found_highlight = True
break
if not found_highlight:
if i == len(new_text) - 1: # 如果是最后一个字符,则记录下来
# print("满足了这个条件")
# print(current_word)
if current_word:
normal_parts.append(current_word+new_text[i])
break
else:
current_word += new_text[i]
# print(f'current_word:{current_word}')
i += 1
# print(f'i:{i}')
else:
normal_parts=[new_text]
print(normal_parts)
print(highlighted_parts)