正则表达式:Select 所有重复行

Regex: Select All Duplicate Lines

好的,我已经玩了一段时间并且已经接近了,但仍然无法实现。

我想从:

a
a
b
a
c
a

至(在 Notepad++ 中):

b
c

我能做到:

a
b
c

这是迄今为止我最好的失败,但你明白了:

^(((.+)(\r?\n))(?:(?!).*\s*)?)((?:(?!).*\s*)?())+
^((.+)(\r?\n))((?:(?!).*\s*)?())+

来自 Regexr,我只想要 'test line'。

最近的新尝试:

^((.+)(\r?\n))(?=(.+)(\r?\n))?()+

这个任务不能用正则表达式恕我直言来完成。这种任务需要交给任何编程语言来处理。我发布了众多解决方案之一,但基于 shell:

sort file.txt | uniq -d

此命令将对文件进行排序并显示重复值列表。

对于那些没有阅读评论的人,我们的想法是使用 NP++ 通过将 IP 黑名单放入完整的 IP 列表中来过滤掉 IP 黑名单,并完全删除任何地方出现的重复行。

这可以通过 Notepad++ 不支持的 use of a variable length lookbehind 来完成。

作为一种变通方法,也更有效:

  1. Sort lines by use of Plugin TextFX Character(select 全部)。
  2. 使用像 ^(.+)\R(?:(?:\R|$))+ 这样的简单模式来删除连续的重复行。