如何在Notepad++中将重复行替换为空行(保留原总行数)
如何在Notepad++中将重复行替换为空行(保留原总行数)
我完全懂你的需求——你不想直接删掉重复行,而是要保住原有的总行数,只把重复出现的行(除了第一次出现的那行)改成空行,方便后续导入CSV做处理对吧?
Notepad++自带的「移除重复行」功能确实是直接删掉重复项,完全满足不了你的场景,但我们可以用正则表达式的查找替换来实现,3k+行的规模完全没问题,操作也很简单:
- 打开Notepad++的查找替换窗口,快捷键是
Ctrl+H - 在「搜索模式」里选择「正则表达式」,注意不要勾选「.匹配换行符」(这个选项会让正则跨行匹配,我们不需要)
- 在「查找内容」框里输入这段正则:
^(.*)$(?<=^[\s\S]*?^\1$) - 「替换为」框留空就行,什么都不用填
- 点击「全部替换」,搞定!
简单说下原理:
这个正则的逻辑是:匹配任意一行内容,同时通过反向预查确认这行内容在当前行之前已经出现过,然后把这些重复的行替换成空行,第一次出现的行则完整保留,完全不会改变原文件的总行数。
比如你的示例输入:
href a href a href a href b href b
处理后就会变成你想要的效果:
href a href b
哪怕你的重复行不是连续的,这个方法也同样有效——不管重复行隔了多少行,只要是之前出现过的内容,都会被替换成空行,绝对能满足你的需求。
备注:内容来源于stack exchange,提问作者Tomas B
相关产品推荐
相关产品推荐

