You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python程序实现:将文本中指定关键短语替换为下划线

Python 关键短语替换为下划线实现方案

核心思路

要实现目标文本中指定关键短语的下划线替换,需解决两个核心问题:

  • 避免短短语优先匹配导致长短语被截断(比如先匹配"数据"会破坏"数据处理"的完整性)
  • 处理短语中的特殊字符,防止正则解析错误

代码实现

import re

def replace_keyphrases(text, list_of_keyphrases):
    # 按短语长度降序排序,确保长短语优先匹配
    sorted_phrases = sorted(list_of_keyphrases, key=lambda x: len(x), reverse=True)
    # 转义短语中的正则元字符,构建匹配模式
    pattern = re.compile('|'.join(re.escape(phrase) for phrase in sorted_phrases))
    # 将匹配到的短语替换为等长度下划线
    return pattern.sub(lambda match: '_' * len(match.group()), text)

# 示例测试
if __name__ == "__main__":
    sample_text = "Python是一门高效的编程语言,数据处理、机器学习是其核心应用方向。"
    sample_keyphrases = ["编程语言", "数据处理", "机器学习"]
    replaced_text = replace_keyphrases(sample_text, sample_keyphrases)
    print(replaced_text)

代码说明

  • 排序处理:对关键短语按长度从长到短排序,保证长短语先被匹配替换,避免短短语截断长匹配项。
  • 正则转义:使用re.escape()处理每个短语,确保短语中的特殊字符(如$、*、.)不会被当作正则元字符解析,避免匹配错误。
  • 等长度替换:通过匿名函数生成与匹配短语长度一致的下划线,保持原文本的结构布局不变。如果需要固定长度的下划线,只需将lambda match: '_' * len(match.group())替换为固定字符串(如'___')即可。

内容的提问来源于stack exchange,提问作者Upinderjeet Singh Kahlon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:56:04