首页 > 解决方案 > 如果文本包含单词组合,Python会突出显示每个单词

问题描述

我对突出显示的单词组合有疑问。

当前代码在文本中查找匹配项并用标签包装单词。

import re

text = 'Just for testing, it is fantastic. Lets do it. Cmon'
keywords = ['testing', 'is fantastic']


def highlight(text, keywords):
    replacement = lambda match: "<mark>" + match.group() + "</mark>"
    text = re.sub("|".join(map(re.escape, keywords)), replacement, text, flags=re.I)
    print(text)

highlight(text, keywords)

输出Just for <mark>testing</mark>, it <mark>is fantastic</mark>. Lets do it. Cmon

问题:如果is fantastic找到单词组合,我想将每个单词包装在这个组合中。

期望Just for <mark>testing</mark>, it <mark>is</mark> <mark>fantastic</mark>. Lets do it. Cmon

谢谢你。

标签: python-3.x

解决方案


只需更换:

keywords = ['testing', 'is fantastic']

和:

keywords = ['testing', 'is', 'fantastic']

它会起作用。


推荐阅读