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

如何在不排序时移除不含Niveau/stime的重复行并保留首次出现?

解决不含"Niveau"/"stime"行的去重问题(保留首次出现、不排序)

你之前用Notepad+TextFX的方法出问题,大概率是因为隐藏行后正则替换的逻辑没考虑到关键词行的特殊性,或者正则写法在处理大量行时容易出异常。下面给你两个实用的方案,优先推荐用Python脚本(更稳定),也给你适配Notepad的正确正则操作:

方案一:Python脚本处理(最可靠,保证顺序和需求)

5000行的文本量很小,用Python写个简单脚本就能精准处理,完全符合你的要求:

  1. 打开记事本,把下面的代码复制进去,保存为remove_duplicates.py(注意后缀是.py):
# 请替换成你的输入/输出文件名
input_file = "你的原文件.txt"
output_file = "处理后的文件.txt"

# 用来记录已经出现过的非关键词行
seen_lines = set()

with open(input_file, 'r', encoding='utf-8') as infile, open(output_file, 'w', encoding='utf-8') as outfile:
    for line in infile:
        # 去掉换行符做判断,保留原行的格式写入
        line_content = line.rstrip('\n')
        # 判断是否包含目标关键词
        if 'Niveau' in line_content or 'stime' in line_content:
            outfile.write(line)
        else:
            # 非关键词行,只保留首次出现的
            if line_content not in seen_lines:
                seen_lines.add(line_content)
                outfile.write(line)
  1. 把你的原文本文件名替换到input_file里,双击运行这个脚本(需要你电脑装了Python,没装的话去官网装个最新版就行,操作很简单)
  2. 运行完后,处理后的文件.txt就是你要的结果——所有含"Niveau"/"stime"的行都保留,不含的重复行只留首次出现,顺序完全和原文件一致。

方案二:Notepad++正则替换(不用额外工具)

如果你不想用脚本,也可以用Notepad++的正则功能直接处理,步骤如下:

  1. 打开你的文本文件,按Ctrl+H打开替换对话框
  2. 勾选「正则表达式」和「匹配换行符」(在对话框左下角)
  3. 「查找目标」输入:
^(?!.*(Niveau|stime))(.*)$\s+(?s)(?<=^\2$\s+)(?:^(?!.*(Niveau|stime))\2$[\r\n]+)+
  1. 「替换为」留空,然后点击「全部替换」

注意事项:

  • 这个正则会匹配所有重复出现的非关键词行,只保留第一次出现的那一行
  • 如果替换后还有少量漏网的,可以多点击几次「全部替换」,直到提示“替换0处”

内容的提问来源于stack exchange,提问作者Simo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:31:47