我需要删除唯一行并将重复项保留在我的文本文件中(阅读为删除重复行而编写的文章,但我想做相反的事情)。有什么办法可以使用表达式或 textfx 来做到这一点?例如:
file1.txt
hello
world
hello
运行后,输出应为
hello
hello
提前致谢
这会找到所有行,然后是行重复(但它没有找到最后一行):
.+\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
"
在替换对话框中:
寻找:
^(.+)\r?\n(?!(.|\r?\n)*\1)
代替:
*leave empty!*
选项:
优点:
缺点:
x
在您的数据中,则在正则表达式x-1
出现之后将被留下,而不是x
像 OP 中所要求的那样。