美文网首页
字符串多项切割,多项高亮替换

字符串多项切割,多项高亮替换

作者: 领带衬有黄金 | 来源:发表于2019-12-02 16:17 被阅读0次

需求:通过elasticsearch搜索出来的结果需要根据关键字进行高亮显示
思考:对关键字进行多项切割,去除符号空格等指定型的切割符号。使用正则进行替换

def api_show_highlight(key: str, origin: str) -> str:
    """字符串替换,忽略大小写,并返回以前的大小写
    :param key: 关键字
    :param origin: 待替换的文本
    :return: 替换完成的文本
    """
    # 获取到需要进行高亮的关键字,并进行多项切割字符串
    rep = sorted(list({i for i in re.split(r"[-\s,;]", key) if i}), key=lambda i: len(i), reverse=True)
    pattern = re.compile("|".join(rep), re.IGNORECASE)
    # 多项替换
    return pattern.sub(lambda m: '<mark style="color: red;background-color: white;">' + m.group(0) + '</mark>', origin)

相关文章

网友评论

      本文标题:字符串多项切割,多项高亮替换

      本文链接:https://www.haomeiwen.com/subject/oedfgctx.html