notepad++去重需分步操作:一、排序+正则删除相邻重复行;二、用python脚本插件保留原始顺序去重;三、列编辑加序号锚点再排序去重后清除序号。

如果您在 Notepad++ 中处理文本时发现存在多行内容完全相同,需要保留唯一行并剔除重复项,则需借助其原生功能组合实现。Notepad++ 本身不提供“一键去重”按钮,也已移除旧版 TextFX 插件中的直接去重选项,必须通过排序、正则匹配或插件扩展等方式分步完成。以下是多种可行的操作路径:
一、使用行排序 + 正则表达式删除相邻重复行
该方法依赖先将所有重复行聚集到相邻位置,再用正则精准匹配并仅保留首次出现的行。它适用于任意长度文本,无需额外安装组件,但要求操作顺序严格,否则原始行序不可恢复。
1、全选文本内容,使用快捷键 Ctrl + A。
2、点击菜单栏 Edit → Line Operations → Sort Lines Lexicographically Ascending,执行升序排列。
3、按下 Ctrl + H 打开替换窗口,勾选 Regular expression 模式。
4、在“查找目标”框中输入:^(.*\r?\n)\1+。
5、在“替换为”框中输入:\1。
6、点击 全部替换。
二、启用 Python 脚本插件执行去重(保留原始顺序)
当必须维持原文本中各行的初始出现顺序时,排序法会破坏结构。Python 脚本插件可逐行读取并记录已出现内容,跳过后续重复行,从而实现稳定去重。
1、确认已安装 Python Script 插件:通过 Plugins → Plugin Manager → Show Plugin Manager → Available,搜索并安装。
2、重启 Notepad++ 后,点击 Plugins → Python Script → New Script,创建新脚本文件。
3、在脚本中粘贴以下代码:
lines = editor.getText().splitlines(True)
seen = set()
unique_lines = []
for line in lines:
if line not in seen:
unique_lines.append(line)
seen.add(line)
editor.setText(''.join(unique_lines))
4、保存脚本(如命名为 remove_duplicates.py),然后在 Plugins → Python Script → Scripts 中运行该脚本。
三、利用 Column Mode 锚定原始顺序后恢复(高精度可控方案)
此方案解决“排序后无法还原原始行序”的痛点,通过在每行前插入唯一序号作为锚点,排序去重后再剥离序号,兼顾去重准确性与顺序完整性。
1、将光标置于文档首行开头,按住 Alt + 鼠标左键拖动 进入列编辑模式,向下拉至末行,松开后在每行最左侧生成空白列。
2、在空白列中输入起始数字 1,然后按 Ctrl + Alt + Shift + ↓ 自动填充递增序号(需启用 Multi-Editing)。
3、全选后执行 Edit → Line Operations → Sort Lines Lexicographically Ascending。
4、使用正则替换 ^(.*\r?\n)\1+ 为 \1,删除相邻重复块。
5、进入列编辑模式,选中最左侧序号列(注意对齐),按 Delete 键清除整列序号。











