【发布时间】:2013-11-01 18:33:16
【问题描述】:
我需要删除唯一的行并将重复的行保留在我的文本文件中(阅读为删除重复行而编写的文章,但我想做相反的事情)。有什么办法可以使用表达式或 textfx 来做到这一点?
例如:
file1.txt
hello
world
hello
运行后,输出应该是
hello
hello
提前致谢
【问题讨论】:
标签: search text replace notepad++
我需要删除唯一的行并将重复的行保留在我的文本文件中(阅读为删除重复行而编写的文章,但我想做相反的事情)。有什么办法可以使用表达式或 textfx 来做到这一点?
例如:
file1.txt
hello
world
hello
运行后,输出应该是
hello
hello
提前致谢
【问题讨论】:
标签: search text replace notepad++
这会找到所有行跟随行重复(但它没有找到最后一行):
.+\r\n(?=(.+\r\n)\1)
000000 111111 22
这匹配非空行 0,但前提是它后面跟着(非空行 \1,后面跟着 \1)。
请注意,这假定 \r\n (Windows) 行分隔符。在 Unix 文本文件上,只需 \n,在 Mac 文本文件上,只需 \r。
在搜索框中,标记Regular expression,取消标记. matches newline,Replace with = ""。
例子:
"Zulu
Alpha
Alpha
Bravo
Charlie
Charlie
Delta
Echo
Echo
Foxtrott
"
(file ends with empty line)
-->
"Alpha
Alpha
Charlie
Charlie
Echo
Echo
Foxtrott
"
【讨论】:
alpha alpha foxtrot foxtrot delta,则输出为:foxtrot foxtrot delta
在替换对话框中:
查找:
^(.+)\r?\n(?!(.|\r?\n)*\1)
替换:
*leave empty!*
选项:
优点:
缺点:
x 次,则在正则表达式之后出现x-1,而不是像OP 中所要求的x。【讨论】:
<。我已经更新了我的答案。再次检查。
alpha alpha foxtrot foxtrot delta 并且我运行你的正则表达式,输出是0次出现 P.S:如何在代码块中添加新行?
alpha foxtrot delta Delta 正在显示,虽然它只出现一次