python-3.x - 如果文本包含单词组合,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
谢谢你。
解决方案
只需更换:
keywords = ['testing', 'is fantastic']
和:
keywords = ['testing', 'is', 'fantastic']
它会起作用。
推荐阅读
- python - 如何在 tkinter 中为熊猫数据链接水平滚动条
- javascript - 在进行比较时,是否需要 typeof?
- javascript - 使用 javascript 修改 HTML 元素的样式和没有 ID 的 onclick 功能
- power-automate - HTTP 连接器 - 内置与高级
- django - Django 模板不会渲染照片
- python - 如何将 Python 中的输入限制为仅限日期?
- python - 将变量转换为 timedelta 但以天而不是时间为单位
- sqlite - 如何在 DB Browser for SQLite 的 DB Schema 侧栏中保持展开所有表设置?
- node.js - 如何使用 nodejs 下载 .xlsx 文件
- rotation - 如何对齐四元数数据?