Regex 正则表达式:选择所有重复行
好吧,我已经玩了一段时间了,已经很接近了,但仍然无法实现 我想从:Regex 正则表达式:选择所有重复行,regex,regex-lookarounds,regex-group,Regex,Regex Lookarounds,Regex Group,好吧,我已经玩了一段时间了,已经很接近了,但仍然无法实现 我想从: a a b a c a 到(在记事本++): 我可以做到: a b c 以下是我迄今为止最好的失败案例,但你知道了: ^(((.+)(\r?\n))(?:(?!\1).*\s*)?)((?:(?!\2).*\s*)?(\2))+ ^((.+)(\r?\n))((?:(?!\1).*\s*)?(\1))+ 从Regexr中,我只需要“测试行”。 最新尝试: ^((.+)(\r?\n))(?=(.+)(\r?\n))?(\1
a
a
b
a
c
a
到(在记事本++):
我可以做到:
a
b
c
以下是我迄今为止最好的失败案例,但你知道了:
^(((.+)(\r?\n))(?:(?!\1).*\s*)?)((?:(?!\2).*\s*)?(\2))+
^((.+)(\r?\n))((?:(?!\1).*\s*)?(\1))+
从Regexr中,我只需要“测试行”。
最新尝试:
^((.+)(\r?\n))(?=(.+)(\r?\n))?(\1)+
此任务不能使用regex IMHO完成。这种任务需要交给任何编程语言处理。我发布了一个gazillion解决方案,但基于shell:
sort file.txt | uniq -d
此命令将对文件进行排序,并显示重复值列表。对于那些没有阅读注释的人,其想法是使用NP++过滤掉IP黑名单,将其放入完整的IP列表中,并完全删除任何地方出现的重复行 这可以通过记事本++中不支持的方式完成 作为一种解决办法,也更有效:
^
字符到(.+)\R
,然后换行\1
后跟一个或多个(,后跟(换行符或(?:\1(?:\R |$)+
结束))$
sort file.txt | uniq -d