是否可以删除 Notepad++ 中的重复行,只留下一行?
如果我有这些行:
1
5
3
9
1
4
3
我希望它是:
1
5
3
9
4
我希望它保留第一个重复的行,并删除所有其他重复的行......而不进行排序。
有人能帮帮我吗?
此致
答案1
要求是一个正则表达式:
- 不对行进行排序(取消 TextFX 资格)。
- 保留第一次出现的情况和删除后者重复。
我也遇到了这个问题。到目前为止,我得到了以下信息:^(.*?)$\s+?^(?=.*^\1$)
- 仅当您启用该选项时它才在 notepad++ 中有效
"." matches newline
。 - 它删除第一个发生和保持后者重复。
我曾经有一个很棒的(但很慢)正则表达式,它兼容 javascript、notepad++ 和 VisualStudio 查找和替换,但我把它弄丢了。如果我能弄清楚或再次找到它,我会更新这个。
答案2
- Ctrl+H
- 找什么:
^(.+)(\R)([\s\S]+?)\1\R?
- 用。。。来代替:
$1$2$3
- 检查环绕
- 检查正则表达式
- 取消选中
. matches newline
- Replace all
解释:
^ # begining of line
( # start group 1
.+ # 1 or more any character but newline
) # end group 1
(\R) # group 2, any kind of linebreak
( # start group 3
[\s\S]+? # 1 or more any character, not greedy
) # end group 3
\1 # same content as group 1
\R? # optional linebreak, to take care of last line, may be without linebreak.
替代品:
$1 # content of group 1
$2 # content of group 2
$3 # content of group 3
给定示例的结果:
1
5
3
9
4
注意:您必须Replace all根据需要多次点击,它不会一次性删除所有重复项。
答案3
这可能比其他一些答案更快:
- 寻找:
(^.*$\r\n)\1*
- 代替:
$1
- 选择“正则表达式”单选按钮